Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
 
Айдар2234
0 / 0 / 0
Регистрация: 21.06.2018
Сообщений: 4
1

Выдает ошибку при добавлении записи

29.06.2018, 00:48. Просмотров 152. Ответов 3
Метки нет (Все метки)

Выдает ошибку при добавлении записи


Delphi
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
procedure TForm4.Button1Click(Sender: TObject);
var chk: integer;
begin
chk:=STRTOINT(edit5.text);
if (Edit1.Text = '') or (Edit5.Text = '') or (Edit7.Text = '')
then
begin
ShowMessage('Вы заполнили не все поля!')
end
else
if DataModule2.ADOQuery1.Locate('Код_продажи', Edit1.Text, []) then
begin
ShowMessage('Номер накладной уже зарегистрирован, введите другой!')
end
else
if chk >= DataModule2.ADOQuery3.FieldByName('Количество').AsInteger then
begin
ShowMessage('Количество превышает запас на складе!')
end
else
begin
DataModule2.ADOCommand1.CommandText:='DELETE FROM Корзина';
DataModule2.ADOCommand1.Execute;
DataModule2.ADOQuery4.Insert;
DataModule2.ADOQuery4.FieldByName('Код_продажи').Value:=Edit1.Text;
DataModule2.ADOQuery4.FieldByName('Название').Value:=DBLookupComboBox3.KeyValue;
DataModule2.ADOQuery4.FieldByName('Наименование').Value:=DBLookupComboBox2.KeyValue;
DataModule2.ADOQuery4.FieldByName('Код_товара').Value:=DBEdit1.Text;
DataModule2.ADOQuery4.FieldByName('Цена').Value:=DBEdit3.Text;
DataModule2.ADOQuery4.FieldByName('Дата_продажи').Value:=DateTimePicker1.DateTime;
DataModule2.ADOQuery4.FieldByName('Количество').Value:=Edit5.Text;
DataModule2.ADOQuery4.FieldByName('Итого').Value:=Edit7.Text;
DataModule2.ADOQuery4.Post;
DataModule2.ADOQuery1.Insert;
DataModule2.ADOQuery1.FieldByName('Код_продажи').Value:=Edit1.Text;
DataModule2.ADOQuery1.FieldByName('Название').Value:=DBLookupComboBox3.KeyValue;
DataModule2.ADOQuery1.FieldByName('Наименование').Value:=DBLookupComboBox2.KeyValue;
DataModule2.ADOQuery1.FieldByName('Код_товара').Value:=DBEdit1.Text;
DataModule2.ADOQuery1.FieldByName('Цена').Value:=DBEdit3.Text;
DataModule2.ADOQuery1.FieldByName('Дата_продажи').Value:=DateTimePicker1.DateTime;
DataModule2.ADOQuery1.FieldByName('Количество').Value:=Edit5.Text;
DataModule2.ADOQuery1.FieldByName('Итого').Value:=Edit7.Text;
DataModule2.ADOQuery1.Post;
DataModule2.ADOQuery3.Edit;
DataModule2.ADOCommand1.CommandText:='UPDATE Склад INNER JOIN Корзина ON [Склад].[Код_товара]=Корзина.[Код_товара] SET Склад.Количество = [Склад].[Количество]-[Корзина].[Количество] WHERE ((([Склад].[Код_товара])=Корзина.[Код_товара]))';
DataModule2.ADOCommand1.Execute;
DataModule2.ADOQuery3.Post;
DataModule2.ADOQuery3.Close;
DataModule2.ADOQuery3.Open;
Form4.Hide;
end;
end;
end.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2018, 00:48
Ответы с готовыми решениями:

При добавлении записи в таблицу выдает ошибку
при добовлении записи в таблицу выдает ошибку

При добавлении записи в БД выводит ошибку
Доброго времени суток, у мня такая проблема при добавлении в БД вылазиет такая...

Изменение записи в таблице при добавлении записи в другую таблицу
Есть две таблицы TProduct(товары) и TIncoming(приход) с полями "наименование" и...

Ошибка при добавлении записи в БД
При попытке добавить запись выдает ошибку "Синтаксическая ошибка в запросе....

Ошибка при добавлении записи
Пишу интерфейс для базы данных автопроката. В Adotable создал lookup-ы. ...

3
krapotkin
3466 / 3065 / 1056
Регистрация: 14.04.2014
Сообщений: 14,834
Записей в блоге: 15
29.06.2018, 08:18 2
какие еще JOIN в UPDATE ????
https://www.w3schools.com/sql/sql_update.asp
0
Пытливый
1381 / 692 / 249
Регистрация: 29.05.2013
Сообщений: 3,120
29.06.2018, 22:28 3
Зависит от версии SQL, можно так попробовать:
SQL
1
2
3
4
UPDATE Склад 
SET Склад.Количество = [Склад].[Количество]-[Корзина].[Количество] 
FROM Склад INNER JOIN Корзина ON [Склад].[Код_товара]=Корзина.[Код_товара]
WHERE ((([Склад].[Код_товара])=Корзина.[Код_товара]))
0
krapotkin
3466 / 3065 / 1056
Регистрация: 14.04.2014
Сообщений: 14,834
Записей в блоге: 15
29.06.2018, 23:55 4
но от души рекомендую никогда этот способ не озвучивать, если будете поступать на работу...

менять остатки на складах это способ убить консистентность БД без всякой возможности отката
стоит запомнить простое правило
все операции с деньгами и товарами нужно вести в виде лога
приход - запись количество > 0
расход - запись количество < 0
и нет никакого поля "Склад"."Количество"
остаток это простая сумма приходов и расходов товара

попробуйте например понять когда чего и сколько продано из БД приведенной в посте...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.06.2018, 23:55

Ошибка при добавлении записи
Использую базу Access 2003, при заполнении всех полей жму на добавить запись и...

Ошибка при добавлении записи
Уже мозг сломал себе и не могу понять почему он в упор отказывается видеть поле...

Я сделал программу по переносу из записи в типизированный файл, но процедура выдает ошибку.
Вот программа.Выдает вот эту ошибку' Введите артикул детали(...


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

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

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