Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.30;
Скачать: CL | DM;

Вниз

Проблемы с TADOQuery.SQL   Найти похожие ветки 

 
nomshar ©   (2002-09-09 00:01) [0]

Здравствуйте. Есть такая проблема.
Код:

procedure TDataForm.RunQueryBtn(Sender: TObject)
begin
try
ADOQuery1.Close;
ADOQuery1.Clear;
ADOQuery1.SQL.Assign(SQLMemo.Lines);
ADOQuery1.Open;
except
...
end;

При этом в SQLMemo находится следующий текст:
"select id, id_name, id_price from billtabl"
При нажатии кнопки RunQueryBtn происходит ошибка и генерируется исключение EListError со следующим сообщением: "List index out of bounds(1)"
Какие бы поля я не вводил в запрос результат прежний. Однако, если ввести в запрос все поля, либо просто *, то все спокойно работает и никаких ошибок не возникает. А если убрать из запроса хоть одно поле, то происходит та же ошибка. Если кто знает в чем тут дело, то очень прошу помощь. Программа горит.


 
Black Cat ©   (2002-09-09 09:49) [1]

А такой код работает? Вообще-то
ADOQuery1.Clear;
не должно проходить. Попробуйте
ADOQuery1.SQL.Clear;


 
oss ©   (2002-09-09 15:14) [2]

а еще очисть весь список полей в этом квери,
либо создавай квери динамически


 
andrenkov   (2002-09-09 16:32) [3]

Не работай через Assign, делай через

ADOQuery1.SQL := SQLMemo.Lines;

Мы это широко используем в своих проектах. Главное, что бы список полей и параметров совпадал с ними же в design-time. Тогда в run-time можешь строить свой query.
Можно конечно делать ADOQuery1 := TADOQuery.create ...

С уважением,

Владимир


 
oss ©   (2002-09-10 18:20) [4]

или еще понятнее
ADOQuery1.SQL.Add(SQLMemo.Lines.text);


 
3JIA9I CyKA ©   (2002-09-10 18:46) [5]

или совсем уж
ADOQuery1.SQL.Text := SQLMemo.Lines.Text;
8)


 
nomshar ©   (2002-09-11 01:45) [6]

Спасибо всем за ответы. И еще раз извиняюсь, конечно же ADOQUery1.SQL.Clear.
А список я очищал и происходило тоже самое. Пробовал делать и так:

ADOQuery1.SQL.Text:= SQLMemo.Lines.Text;

Результат был тот же.


 
Друпи ©   (2002-09-11 04:34) [7]

...
AdoQuery1.SQL.Clear;
AdoQuery1.SQL.AddStrings(SQLMemo.Lines);
...


 
ЮЮ ©   (2002-09-11 05:37) [8]

Вернёмся к началу:
При этом в SQLMemo находится следующий текст:
"select id, id_name, id_price from billtabl"
При нажатии кнопки RunQueryBtn происходит ошибка и генерируется исключение EListError со следующим сообщением: "List index out of bounds(1)"
Какие бы поля я не вводил в запрос результат прежний. Однако, если ввести в запрос все поля, либо просто *, то все спокойно работает и никаких ошибок не возникает. А если убрать из запроса хоть одно поле, то происходит та же ошибка.

Ведь ошибка не обязательно происходит в
ADOQuery1.SQL.Assign(SQLMemo.Lines);
Даже, скорей всего, не там. Посмотри, что у тебя происходит на Open, в обработчиках ADOQuery1.

При нажатии кнопки RunQueryBtn происходит ошибка - вообще не корректно поставленный вопрос. Следовало бы указать в какой строке.



 
Харальд   (2002-09-11 10:34) [9]

Ошибка "List index out of bounds(1)" скорее всего возникает из-за того что, в ADOQuery1 Fields Editor"ом созданы заведены все поля из таблицы. И при попытке выбора меньшего количества, возникает исключительная ситуация. Попробуй удалить поля из Fields Editor"а



Страницы: 1 вся ветка

Текущий архив: 2002.09.30;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
7-98362
Stanislav SM
2002-07-17 17:10
2002.09.30
Как отследить события джойстика


1-98031
LEV
2002-09-18 21:56
2002.09.30
ВОПРОС


1-98075
Fog
2002-09-18 16:15
2002.09.30
Супер запутанные лупы


14-98359
nick_sniper
2002-09-06 03:00
2002.09.30
И внимательно следит за передвижениями курсора мыши


8-98234
BorisMor
2002-06-03 14:22
2002.09.30
MP3 -> WAV