Форум программистов, компьютерный форум, киберфорум
Java: Базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 17.01.2019
Сообщений: 14
1

Проблема с транзакций в бд Accesss

27.12.2020, 16:27. Показов 1467. Ответов 2
Метки java (Все метки)

Есть простое консольное приложение работающее с бд Accesss. Столкнулась с проблемой, что при транзакции в бд значения записываются не в те столбцы. Может кто сможет подсказать с чем это связано?

Прикладываю код и бд
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
import java.awt.*;
import java.net.*;
import java.sql.*;
import java.io.*;
 
public class DBClass {
    static void menu() {
        System.out.println("Выберите пункт меню:");
        System.out.println("1-Просмотр продаж");
        System.out.println("2-Добавить продажу");
        System.out.println("3-Удалить продажу");
        System.out.println("4-Редактировать продажу");
        System.out.println("5-Поиск");
        System.out.println("6-Сортировка");
        System.out.println("7-Выход");
    }
 
    public static void main(String args[]) {
 
        String num_prod, date_prod, pokup, nazv, cena, type;
 
        BufferedReader stdin = new BufferedReader(new
                InputStreamReader(System.in));
        BufferedReader in = new BufferedReader(new
                InputStreamReader(System.in));
        String url = "jdbc:ucanaccess://C:/Учеба Дашка/6 сем/ПСП/KR2-2/Prodazha.mdb";
        try {
            Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
 
            Connection db = DriverManager.getConnection(url);
            while (true) {
                menu();
                Statement sq = db.createStatement();
                String vybor = stdin.readLine();
                if (vybor.equalsIgnoreCase("1")) {
                    String sq_str = "SELECT * FROM Prodazha ORDER BY Номер";
                    ResultSet rs = sq.executeQuery(sq_str);
                    System.out.println("|Номер\t|Дата\t|Покупатель\t|Название товара\t|Сумма\t|Тип оплаты|");
                    while (rs.next()) {
                        num_prod = rs.getString("Номер");
                        date_prod = rs.getString("Дата");
                        pokup = rs.getString("Покупатель");
                        nazv = rs.getString("Название_товара");
                        cena = rs.getString("Сумма");
                        type = rs.getString("Тип_оплаты");
 
                        System.out.println("|" + num_prod + "\t|" + date_prod + "\t|" + pokup + "\t|" + nazv + "\t|"+ cena + "\t|"+ type + "\t|");
                    }
                } else if (vybor.equalsIgnoreCase("2")) {
                    System.out.println("Можете добавить новую продажу:");
                    System.out.println("Введите номер продажи:");
                    num_prod =  in.readLine();
                   System.out.println("Введите дату продажи (yyyymmdd):");
                    date_prod = in.readLine();
                    System.out.println("Введите покупателя:");
                    pokup = in.readLine();
                    System.out.println("Введите название товара:");
                    nazv = in.readLine();
                    System.out.println("Введите цену:");
                    cena = in.readLine();
                    System.out.println("Введите тип оплаты:");
                    type = in.readLine();
 
                    String sq_str = "INSERT INTO Prodazha VALUES ('" + num_prod + "','" + date_prod + "','" + pokup + "','" +
                            nazv + "','" + cena + "','" + type + "')";
                    int rs = sq.executeUpdate(sq_str);
                } else if (vybor.equalsIgnoreCase("3")) {
                    System.out.println("Удаление продажи");
                    System.out.println("Введите номер продажи:");
                    num_prod = in.readLine();
                    System.out.println("Вы точно хотите удалить продажу? ");
                    System.out.println("1-Да");
                    System.out.println("2-Нет");
                    String vybor1 = stdin.readLine();
                    if (vybor1.equalsIgnoreCase("1")) {
                    String sq_str = "DELETE FROM Prodazha WHERE Номер ='" + num_prod + "'";
                    int rs = sq.executeUpdate(sq_str);}
                } else if (vybor.equalsIgnoreCase("4")) {
                    String vibor;
                    System.out.println("Введите номер товара для редактирования");
                    vibor = in.readLine();
                    System.out.println("Введите новую дату продажи(yyyymmdd):");
                    date_prod = in.readLine();
                    System.out.println("Введите нового покупателя:");
                    pokup = in.readLine();
                    System.out.println("Введите новое название товара:");
                    nazv = in.readLine();
                    System.out.println("Введите новую цену:");
                    cena = in.readLine();
                    System.out.println("Введите новый тип оплаты:");
                    type = in.readLine();
                    String sq_str = "UPDATE Prodazha SET Дата='" + date_prod +
                            "',Покупатель='" + pokup + "',Название_товара = '" + nazv +"',Сумма='" + cena + "',Тип_оплаты='" + type +
                            "' WHERE Номер=" + vibor + "";
                    int rs = sq.executeUpdate(sq_str);
                }else if (vybor.equalsIgnoreCase("5")) {
                    System.out.println("Поиск продажи");
                    System.out.println("Выберете поле для поиска:");
                    System.out.println("1-Дата");
                    System.out.println("2-Покупатель");
                    String vybor2 = stdin.readLine();
                    System.out.println("Введите значение для поиска");
                    String poisk = stdin.readLine();
                    if (vybor2.equalsIgnoreCase("1")) {
                        String sq_str = "SELECT * FROM Prodazha WHERE Дата ='" + poisk + "' ORDER BY Номер";
                        ResultSet rs = sq.executeQuery(sq_str);
                        System.out.println("|Номер\t|Дата\t|Покупатель\t|Название товара\t|Сумма\t|Тип оплаты|");
                        while (rs.next()) {
                            num_prod = rs.getString("Номер");
                            date_prod = rs.getString("Дата");
                            pokup = rs.getString("Покупатель");
                            nazv = rs.getString("Название_товара");
                            cena = rs.getString("Сумма");
                            type = rs.getString("Тип_оплаты");
 
                            System.out.println("|" + num_prod + "\t|" + date_prod + "\t|" + pokup + "\t|" + nazv + "\t|"+ cena + "\t|"+ type + "\t|");
                        }
                    }
                    else if(vybor2.equalsIgnoreCase("2")) {
                        String sq_str = "SELECT *  FROM Prodazha WHERE Покупатель ='" + poisk + "' ORDER BY Номер ";
                        ResultSet rs = sq.executeQuery(sq_str);
                        System.out.println("|Номер\t|Дата\t|Покупатель\t|Название товара\t|Сумма\t|Тип оплаты|");
                        while (rs.next()) {
                            num_prod = rs.getString("Номер");
                            date_prod = rs.getString("Дата");
                            pokup = rs.getString("Покупатель");
                            nazv = rs.getString("Название_товара");
                            cena = rs.getString("Сумма");
                            type = rs.getString("Тип_оплаты");
 
                            System.out.println("|" + num_prod + "\t|" + date_prod + "\t|" + pokup + "\t|" + nazv + "\t|"+ cena + "\t|"+ type + "\t|");
                        }
                    }
 
                }else if (vybor.equalsIgnoreCase("6")) {
                    System.out.println("Сортировка продаж");
                    System.out.println("Выберете поле для сортировки:");
                    System.out.println("1-Дата");
                    System.out.println("2-Покупатель");
                    System.out.println("3-Название товара");
                    System.out.println("4-Сумма");
                    System.out.println("5-Тип оплаты");
                    String vybor2 = stdin.readLine();
                    if (vybor2.equalsIgnoreCase("1")) {
                            String sq_str = "SELECT * FROM Prodazha ORDER BY Дата";
                            ResultSet rs = sq.executeQuery(sq_str);
                            System.out.println("|Номер\t|Дата\t|Покупатель\t|Название товара\t|Сумма\t|Тип оплаты|");
                            while (rs.next()) {
                                num_prod = rs.getString("Номер");
                                date_prod = rs.getString("Дата");
                                pokup = rs.getString("Покупатель");
                                nazv = rs.getString("Название_товара");
                                cena = rs.getString("Сумма");
                                type = rs.getString("Тип_оплаты");
                                System.out.println("|" + num_prod + "\t|" + date_prod + "\t|" + pokup + "\t|" + nazv + "\t|"+ cena + "\t|"+ type + "\t|");
                            }
                        }
                    else if(vybor2.equalsIgnoreCase("2")) {
                        String sq_str = "SELECT * FROM Prodazha ORDER BY Покупатель";
                        ResultSet rs = sq.executeQuery(sq_str);
                        System.out.println("|Номер\t|Дата\t|Покупатель\t|Название товара\t|Сумма\t|Тип оплаты|");
                        while (rs.next()) {
                            num_prod = rs.getString("Номер");
                            date_prod = rs.getString("Дата");
                            pokup = rs.getString("Покупатель");
                            nazv = rs.getString("Название_товара");
                            cena = rs.getString("Сумма");
                            type = rs.getString("Тип_оплаты");
                            System.out.println("|" + num_prod + "\t|" + date_prod + "\t|" + pokup + "\t|" + nazv + "\t|"+ cena + "\t|"+ type + "\t|");
                        }
                    }
                    else if(vybor2.equalsIgnoreCase("3")) {
                        String sq_str = "SELECT * FROM Prodazha ORDER BY Название_товара";
                        ResultSet rs = sq.executeQuery(sq_str);
                        System.out.println("|Номер\t|Дата\t|Покупатель\t|Название товара\t|Сумма\t|Тип оплаты|");
                        while (rs.next()) {
                            num_prod = rs.getString("Номер");
                            date_prod = rs.getString("Дата");
                            pokup = rs.getString("Покупатель");
                            nazv = rs.getString("Название_товара");
                            cena = rs.getString("Сумма");
                            type = rs.getString("Тип_оплаты");
                            System.out.println("|" + num_prod + "\t|" + date_prod + "\t|" + pokup + "\t|" + nazv + "\t|"+ cena + "\t|"+ type + "\t|");
                        }
                    }
                    else if(vybor2.equalsIgnoreCase("4")) {
                        String sq_str = "SELECT * FROM Prodazha ORDER BY Сумма";
                        ResultSet rs = sq.executeQuery(sq_str);
                        System.out.println("|Номер\t|Дата\t|Покупатель\t|Название товара\t|Сумма\t|Тип оплаты|");
                        while (rs.next()) {
                            num_prod = rs.getString("Номер");
                            date_prod = rs.getString("Дата");
                            pokup = rs.getString("Покупатель");
                            nazv = rs.getString("Название_товара");
                            cena = rs.getString("Сумма");
                            type = rs.getString("Тип_оплаты");
                            System.out.println("|" + num_prod + "\t|" + date_prod + "\t|" + pokup + "\t|" + nazv + "\t|"+ cena + "\t|"+ type + "\t|");
                        }
                    }
                    else if(vybor2.equalsIgnoreCase("5")) {
                        String sq_str = "SELECT * FROM Prodazha ORDER BY Тип_оплаты";
                        ResultSet rs = sq.executeQuery(sq_str);
                        System.out.println("|Номер\t|Дата\t|Покупатель\t|Название товара\t|Сумма\t|Тип оплаты|");
                        while (rs.next()) {
                            num_prod = rs.getString("Номер");
                            date_prod = rs.getString("Дата");
                            pokup = rs.getString("Покупатель");
                            nazv = rs.getString("Название_товара");
                            cena = rs.getString("Сумма");
                            type = rs.getString("Тип_оплаты");
                            System.out.println("|" + num_prod + "\t|" + date_prod + "\t|" + pokup + "\t|" + nazv + "\t|"+ cena + "\t|"+ type + "\t|");
                        }
                    }
 
                } else if (vybor.equalsIgnoreCase("7")) {
                    db.close();
                    System.exit(0);
                }
            }
        } catch (Exception e) {
            System.out.println("Error" + e);
        }
    }
}
0
Миниатюры
Проблема с транзакций в бд Accesss   Проблема с транзакций в бд Accesss  
Вложения
Тип файла: rar Prodazha.rar (14.3 Кб, 3 просмотров)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.12.2020, 16:27
Ответы с готовыми решениями:

Напишите программу, которая читает несколько транзакций и подсчитывает количество транзакций для каждого ISBN
Задача 1.23 и 1.24 С. Липпман 5-е издание Есть задачка из этой книги: #include <iostream>...

Как разбить обработку на несколько транзакций(проблема с блокировками)
Всем привет! Столкнулся с проблемой блокировок, когда нескольким пользователям нужен один ресурс и...

Проблема, не могу сделать резервную копию журнала транзакций
SQL Server Personal Edition, Product version 8.00.194(RTM). Операционная система Windows...

Проблема с MS DTC, код ошибки 8004E00F, "Отсутствует связь COM+ с координатором распределенных транзакций"
Добрый вечер, Столкнулся с проблемой в службах компонентов. При попытке провалиться в раздел...

2
0 / 0 / 0
Регистрация: 17.01.2019
Сообщений: 14
27.12.2020, 16:42  [ТС] 2
Полечилось явным указанием полей

Java
1
                    String sq_str = "INSERT INTO Prodazha ([Номер], [Дата], [Покупатель], [Название_товара], [Сумма], [Тип_оплаты]) VALUES ('" + num_prod + "','" + date_prod + "','" + pokup + "','" + nazv + "','" + cena + "','" + type + "')";
0
Эксперт Java
3049 / 2544 / 782
Регистрация: 05.07.2013
Сообщений: 12,308
27.12.2020, 16:44 3
Кто так писать учил? Не удивительно, что даже ты не можешь понять что понаписано.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.12.2020, 16:44

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Вывод сообщения о несуществующей записи в отчёте Accesss 2007
Доброго времени суток, форумчане. Обращаюсь с, возможно, тривиальной проблемой, но из-за недостатка...

Не могу задать программно свойство MultiSelect в простой список Accesss
Не могу задать программно свойство MultiSelect в простой список Accesss. При каком событии...

Журналы транзакций
Вычиал тут один документ в котором идет речь про резервное копирование данных домино. Так вот там...

использование транзакций
Доброго времени суток. У меня такая проблема Есть dataSet с копией всей БД (около 30 таблиц)....

Параллельность транзакций
1 Проблема потерянного обновления. Эта проблема проявляется в том, что результаты успешно...

Журнал транзакций
Как посмотреть информацию о журнале транзакций? Где он находится, сколько места занимает, сколько...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.