Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2012, 11:40   #1
MaLaGuS
 
Регистрация: 22.11.2011
Сообщений: 8
Восклицание Ошибка со скобками

Здравствуйте!
У меня такое задание:
В БД книжного магазина реализовать увеличение количества при поступлении, в случае если цена совпадает.

Если делаю таким образом, то выдает ошибку " ')' expected but ';' found "
Цитата:
procedure TForm1.Button8Click(Sender: TObject);
var i:integer;
begin
Form1.ADOTable1.Open;
Form1.ADOTable5.Open;
Form1.ADOTable1.Edit;
Form1.ADOTable5.Edit;
Form1.ADOTable1.First;
while not Form1.ADOTable1.Eof do begin
if ((Form1.ADOTable5.FieldByName('ID_k nigi').AsInteger=Form1.ADOTable1.Fi eldByName('ID_knigi').AsInteger)
and (Form1.ADOTable5.FieldByName('PurVa l').AsInteger=Form1.ADOTable1.Field ByName('KPr').AsInteger)) then
Form1.ADOTable1.FieldByName('KCnt') .AsInteger:=Form1.ADOTable1.FieldBy Name('KCnt').AsInteger+Form1.ADOTab le5.FieldByName('PCnt').AsInteger
else ((Form1.ADOTable1.Next) and
(if Form1.ADOTable1.Eof=true then begin
i:=Form2.ShowModal;
Form2.Edit11.Text:=Form1.ADOTable5. FieldByName('PCnt').Asstring;
Form2.Edit9.Text:=Form1.ADOTable5.F ieldByName('PurVal').Asstring;end;) );
end;
end;
если же в предпоследней строчке убираю ";",
Цитата:
procedure TForm1.Button8Click(Sender: TObject);
var i:integer;
begin
Form1.ADOTable1.Open;
Form1.ADOTable5.Open;
Form1.ADOTable1.Edit;
Form1.ADOTable5.Edit;
Form1.ADOTable1.First;
while not Form1.ADOTable1.Eof do begin
if ((Form1.ADOTable5.FieldByName('ID_k nigi').AsInteger=Form1.ADOTable1.Fi eldByName('ID_knigi').AsInteger)
and (Form1.ADOTable5.FieldByName('PurVa l').AsInteger=Form1.ADOTable1.Field ByName('KPr').AsInteger)) then
Form1.ADOTable1.FieldByName('KCnt') .AsInteger:=Form1.ADOTable1.FieldBy Name('KCnt').AsInteger+Form1.ADOTab le5.FieldByName('PCnt').AsInteger
else ((Form1.ADOTable1.Next) and
(if Form1.ADOTable1.Eof=true then begin
i:=Form2.ShowModal;
Form2.Edit11.Text:=Form1.ADOTable5. FieldByName('PCnt').Asstring;
Form2.Edit9.Text:=Form1.ADOTable5.F ieldByName('PurVal').Asstring;end)) ;
end;
end;
то выдает ошибку "Operator not applicable to this operand type".

Помогите пожалуйста разобраться
MaLaGuS вне форума Ответить с цитированием
Старый 07.06.2012, 21:36   #2
le7o
Форумчанин
 
Регистрация: 19.05.2011
Сообщений: 116
По умолчанию

В подобных случаях лучше использовать ADOQuery и запросы, допустим Form1.ADOTable5.FieldByName('ID_k nigi').AsInteger=Form1.ADOTable1.Fi eldByName('ID_knigi').AsInteger, можно заменить на SELECT * FROM TAB1 INNER JOIN TAB2 ON TAB1.ID_k-nigi = TAB2.ID_knigi...

И код компактнее и вероятность запутаться в нем ниже...
le7o вне форума Ответить с цитированием
Старый 07.06.2012, 23:01   #3
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Код:
else ((Form1.ADOTable1.Next) and (if Form1.ADOTable1.Eof=true 
then  begin
i:=Form2.ShowModal;
Form2.Edit11.Text:=Form1.ADOTable5.FieldByName('PCnt').Asstring;
Form2.Edit9.Text:=Form1.ADOTable5.FieldByName('PurVal').Asstring;end)) ;
end;
как-то смущает меня эта часть кода ....
тут явно не хватает IF после ELSE и как-то не в тему закрыты скобки
да и вообще что требовалось сделать данным кодом
Код:
else ((Form1.ADOTable1.Next) and (if Form1.ADOTable1.Eof=true 
then
???
а может это я уже туплю в конце недели(
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простейший интерпретатор арифметических выражений со скобками MrBrain Общие вопросы C/C++ 6 07.10.2011 11:19
Не могу разобраться с фигурными скобками в оператарах if , else Marmelade Общие вопросы C/C++ 7 29.09.2010 17:25
Задача со скобками на C++ Alekseo Помощь студентам 1 01.06.2009 21:26
Задача со скобками в Паскале SEREG@ Помощь студентам 7 11.06.2008 15:01
Работа со скобками alikon1 Общие вопросы Delphi 7 15.11.2007 15:14