|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Непонятная ошибка в ADO
Здравствуйте! Провозился с проблемой весь день, а результата ноль!
Проблема собственно вот в чем: имеются последовательности SQL запросов-один главный, другой дочерний, что- то типа select * from customer select * from orders where CustNo=:CustNo которые должны выполняться один за другим (первая пара запросов, затем вторая и т.д). Все свойства ADOConnection и ADOQuery выставлены правильно, первая пара запросов обрабатывается успешно, а потом возникает ошибка что типа поле CustNo-из первого запроса не найдено, так его и не должно быть, запрос то другой уже. Проверял все запросы по одному, прекрасно работают. Код:
procedure TCForm.RecuestViewDblClick(Sender: TObject); var i:integer; begin for i:=0 to r-1 do begin if Zapros[i].Name=RecuestView.Items[RecuestView.ItemIndex].Caption then begin ADOdch.Close;//закрываю дочерний Query ADOgl.Close;//закрываю родительский Query ADOgl.SQL.Clear; ADOgl.SQL.Add(zapros[i].SQL1);//здесь добавляется первый запрос ADOdch.SQL.Clear; ADOdch.SQL.Add(zapros[i].SQL2);//----второй запрос adogl.Open;//открытие набора данных ADOdch.Open; break; end; end; end; |
#2
|
||||
|
||||
У тебя все очищается при следующем вызове запроса? Может параметры не чистятся.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию Последний раз редактировалось M.A.D.M.A.N., 27.08.2011 в 19:16. |
#3
|
||||
|
||||
Проблема решена!
Код:
procedure TCForm.RecuestViewDblClick(Sender: TObject); var i:integer; begin for i:=0 to r-1 do begin if Zapros[i].Name=RecuestView.Items[RecuestView.ItemIndex].Caption then begin ADOdch.Close;//закрываю дочерний Query ADOgl.Close;//закрываю родительский Query ADOgl.SQL.Clear; ADOgl.SQL.Add(zapros[i].SQL1);//здесь добавляется первый запрос ADOdch.SQL.Clear; ADOdch.SQL.Add(zapros[i].SQL2);//----второй запрос ADOdch.Open;//не знаю почему, но после такой перестановки все заработало как надо adogl.Open; ADOdch.Close; ADOdch.Open; break; end; end; end; |