Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 12.01.2009, 20:11
Lames Lames вне форума
Прохожий
 
Регистрация: 12.01.2009
Сообщения: 4
Репутация: 10
По умолчанию не воспринимается параметр

после такого запроса
Код:
With DataModul.IBQuery1 do
    begin
      Close;
      SQL.Clear;
      sql.Add(' select FilmName from table_film where filmname like :str ');
      Params[0].AsString:= '%'+ Edit1.Text+'%';
      Open;
    end;
Admin: Пользуемся тегами!

выдается ошибка
sql error code = -206
column unknown
STR

пожскажите пожалуйста чего за фигня?

Последний раз редактировалось Admin, 12.01.2009 в 20:15.
Ответить с цитированием
  #2  
Старый 12.01.2009, 20:52
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

SQL выражение - это строка. Парсер встречая "str" пытается найти поле с таким именем в таблице. Т.к. его нет, происходит ошибка при проверке выражения.
Код:
  sql.Add('select FilmName from table_film where filmname like '+
                      QuotedStr('%'+ Edit1.Text)+'%'));
//      Params[0].AsString:= '%'+ Edit1.Text+'%';
      Open;
Добавлено.
Параметры это, конечно, хорошо, но применять их смысла большого нет. Если представить себе приложение где формируется сотня видов SQL выражений, то получается, что на форме надо держать сотню компонентов Query каждый со своими параметрами. Нелепость какая-то. Проще держать пару Query, задавая нужное выражение в каждый момент времени свое, передавая значения параметров непосредственно в текст выражения (как показано здесь в исходнике).
__________________
Не забывайте делать резервные копии

Последний раз редактировалось san-46, 13.01.2009 в 08:55.
Ответить с цитированием
  #3  
Старый 12.01.2009, 22:55
Lames Lames вне форума
Прохожий
 
Регистрация: 12.01.2009
Сообщения: 4
Репутация: 10
По умолчанию

я наверна после армии вообще отупел )) но всетаки...

а тут что? параметр задан изначально в свойствах ibquery,
но при исполнении запроса опять ругается и говорит что такой column не найден

Код:
DataModul.DataSource1.DataSet:=DataModul.IBQuery3;
  if ComboBox1.ItemIndex<>0 then
  With DataModul.IBQuery3 do
  begin
    Close;
    SQL.Clear;
    sql.Add('select * from table_film where filmtype = :q');
    ParamByName('q').AsInteger:=i;
    Open;
  end;
Admin: Пользуемся тегами, иначе последуют санкции!!!

i - параметр который передается в процедуру.

спасибо

Последний раз редактировалось Admin, 13.01.2009 в 17:55.
Ответить с цитированием
  #4  
Старый 12.01.2009, 23:10
Lames Lames вне форума
Прохожий
 
Регистрация: 12.01.2009
Сообщения: 4
Репутация: 10
По умолчанию

да, и кстати на
Close;
SQL.Clear;
sql.Add('select FilmName from table_film where filmname like ''%'+ Edit1.Text+'%''');
Open;
выдает "xsqlda index out of range" хотя строка запроса получается правильная...
Ответить с цитированием
  #5  
Старый 13.01.2009, 00:14
Lames Lames вне форума
Прохожий
 
Регистрация: 12.01.2009
Сообщения: 4
Репутация: 10
По умолчанию

кстати наверно это глюки ... Я сейчас тот же проект переделал в дел 7(которую нашел), до этого делал в 2009....
Ответить с цитированием
  #6  
Старый 13.01.2009, 00:30
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

IBX надо обновить. Про обновление и работу с IBX смотреть здесь: http://www.ibase.ru/devinfo/ibx.htm
Если SQL выражение перенести в свойство "SQL" IBQuery (в редакторе этого свойства делается), то параметры (список в свойстве Params)создаются автоматом - городить ничего не надо.
А IBX с Delphi 2009 это вообще особая песня.
Ошибка из-за глюков - это точно.
__________________
Не забывайте делать резервные копии
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:37.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter