![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Динамический запрос [D7, IB6.x]
Bolek © (2005-11-03 14:07:00)Доброго вренмени суток.
формирую динамический запрос следующим образом
procedure TForm1.Edit1Change(Sender: TObject);
begin
if Edit1.Text = '' then
begin
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('select * from DVD_DISK');
IBQuery1.Open;
end
else
begin
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('select * from DVD_DISK ');
IBQuery1.SQL.Add('where name LIKE '+Edit1.Text);
IBQuery1.Open;
end;
end;
а оно мне в ответ:
Project Project1.exe raised exception class EIBInterBaseError with message 'Dynamic SQL Error
SQL error code = -206
Column unknown
d
At line 2, column 12'. Process stopped. Use Step or Run to continue.
уже по всякому пробывал и даже книжку читал. везде облом
хелп плз
Bolek (2005-11-03 14:33:00) [21]подразумевалось, что если в Edit будет пусто, то пусть все записи возьмёт; а если не пусто, то выбор по вхождению текста из Edit
Val (2005-11-03 14:31:00) [22]т.е. они выполняются всегда. зачем они в ветках?
Bolek (2005-11-03 14:27:00) [23]
> заметьте, вы используете одинаковые строки кода в обеих,
> исключающих друг-друга, ветках - не наводит на мысли?
т.е.?
Sergey13 (2005-11-03 14:25:00) [24]Лучше переделать запрос на статический c 2 параметрами.
select * from DVD_DISK
where (:flag=0) or (:flag=1 and name LIKE :name)
Val (2005-11-03 14:24:00) [25]>Bolek © (03.11.05 14:07)
заметьте, вы используете одинаковые строки кода в обеих, исключающих друг-друга, ветках - не наводит на мысли?
msguns (2005-11-03 14:11:00) [26]IBQuery1.SQL.Add('where name LIKE '+ QuotedStr(Edit1.Text));