![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка запроса [D5, MSSQL]
KVT2000 © (2002-06-18 11:35:00)Уважаемые мастера, возникла следующая проблема.
Сначала выполняю вот эти запросы:
DataM.ADOQueryOtgr.Close;
DataM.ADOQueryOtgr.SQL.Clear;
DataM.ADOQuerySbor.Close;
DataM.ADOQuerySbor.SQL.Clear;
DataM.ADOQueryOtgr.SQL.Add("Select distinct NPLAV from PASP_PROD ");
DataM.ADOQueryOtgr.SQL.Add("where BRAK_OTSO = 1 ");
DataM.ADOQueryOtgr.SQL.Add("and DATE_TIME_OTG is NULL ");
DataM.ADOQueryOtgr.SQL.Add("and SERIA = 100 ");
DataM.ADOQueryOtgr.SQL.Add("or SERIA = 200 ");
DataM.ADOQueryOtgr.SQL.Add("group by NPLAV ");
DataM.ADOQueryOtgr.SQL.Add("order by NPLAV");
DataM.ADOQueryOtgr.Open;
DataM.ADOQuerySbor.DataSource := DataM.DataSOtgr;
DataM.ADOQuerySbor.SQL.Add("Select * from PASP_PROD d ");
DataM.ADOQuerySbor.SQL.Add("where d.NPLAV = :NPLAV ");
DataM.ADOQuerySbor.SQL.Add("ORDER BY d.NRUCH, d.NSLIT");
DataM.ADOQuerySbor.Open;
А затем выполняю другие запросы:
DataM.ADOQueryOtgr.Close;
DataM.ADOQueryOtgr.SQL.Clear;
DataM.ADOQuerySbor.Close;
DataM.ADOQuerySbor.SQL.Clear;
DataM.ADOQuerySbor.DataSource := nil;
DataM.ADOQueryOtgr.SQL.Add("Select distinct PRIZ_SBOR from PASP_PROD ");
DataM.ADOQueryOtgr.SQL.Add("where PRIZ_SBOR is not null ");
DataM.ADOQueryOtgr.SQL.Add("Group by PRIZ_SBOR ");
DataM.ADOQueryOtgr.SQL.Add("ORDER BY PRIZ_SBOR");
DataM.ADOQueryOtgr.Open;
DataM.ADOQuerySbor.SQL.Add("Select * from PASP_PROD d ");
DataM.ADOQuerySbor.SQL.Add("where d.PRIZ_SBOR = :PRIZ_SBOR ");
DataM.ADOQuerySbor.SQL.Add("ORDER BY d.PRIZ_SBOR, d.NPLAV");
DataM.ADOQuerySbor.Open;
И вот в строке DataM.ADOQueryOtgr.Open; выдает ошибку "ADOQueryOtgr:Field"NPLAV" not found".!!!
Как будто параметр предыдущих запросов остался.!!!
Делал Parameters.Clear - не помогло!!!
Подскажите, что делать?
fool (2002-06-18 14:51:00) [1]Не за что спасибо, но для себя ето запомню - может столкнусь када...
KVT2000 (2002-06-18 14:48:00) [2]Нормально заработало, когда сделал
Select distinct NPLAV as TT from PASP_PROD
и
Select distinct PRIZ_SBOR as TT from PASP_PROD
то есть одинаковое имя.
Спасибо fool за поддержку.
fool (2002-06-18 14:42:00) [3]Извини, но я - пас :0( (с таким глюком не сталкивался)
KVT2000 (2002-06-18 14:19:00) [4]Пробовал. Та же ошибка!!!
fool (2002-06-18 13:46:00) [5]После Parameters.Clear попробуй явно задать нужные параметры
KVT2000 (2002-06-18 13:36:00) [6]Да. Для обоих квери стоит ParamCheck = True, Prepared = True.
fool (2002-06-18 13:24:00) [7]А ParamCheck учитываешь?
KVT2000 (2002-06-18 13:17:00) [8]>AdoQuerySbor.Prepared := True; перед Open ?
Пробовал, не помогает!!!
fool (2002-06-18 13:09:00) [9]AdoQuerySbor.Prepared := True; перед Open ?
KVT2000 (2002-06-18 12:52:00) [10]Да именно на втором.
Когда запускаю сначала второй блок запросов, а потом первый(то есть меняю их местами), то теперь уже выдает ошибку "ADOQueryOtgr:Field"PRIZ_SBOR" not found".!!!
Как будто параметр предыдущих запросов остался.!!!
Неужели, для каждого запроса - свой ADOQuery?
fool (2002-06-18 12:37:00) [11]Ошибка появлялась именно на втором блоке операторов, не на первом? Точно? Если да то не знаю, если на первом, то на сервере в таблице поля NPLAY нету.
KVT2000 (2002-06-18 12:19:00) [12]Извиняюсь, эта строка закоментирована.
А источником - DataM.ADOQuerySbor.DataSource := DataM.DataSOtgr;
fool (2002-06-18 12:15:00) [13]Зачем DataM.ADOQuerySbor.DataSource := nil; если параметр ссылается на ADOQueryOtgr?
KVT2000 (2002-06-18 12:09:00) [14]В ADOQueryOtgr не добавлял, а в ADOQuerySbor - добавлял все поля.
fool (2002-06-18 12:02:00) [15]А ты в редакторе полей поля добавлял?