Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Динамический запрос [D7, IB6.x]


Страницы:   1 2

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));


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо