Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.09.30;
Скачать: [xml.tar.bz2];

Вниз

Проблемы с 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
1-98104
Донской
2002-09-19 19:21
2002.09.30
Ошибка в режиме написания кода


1-98050
Uran
2002-09-19 09:58
2002.09.30
Позиционирование в TEdit


1-98133
Vladimiruss
2002-09-19 18:31
2002.09.30
Помогите, начинающему программисту...


3-98006
Леван
2002-09-07 10:07
2002.09.30
Kак сделать Continue после Locate?


1-98103
Писарь
2002-09-19 19:28
2002.09.30
Замена полос прокрутки битмапами





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский