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

Вниз

SQL-запрос с параметрами выдает ошибки   Найти похожие ветки 

 
kyn66 ©   (2006-04-25 13:34) [0]

Уважаемые мастера, никак не могу победить запрос с параметрами. Делая разные вариации - вылетают разные ошибки. Мне нужно сделать запрс с LIKE и без него. Вот что делаю:

   With KvQuery do
     begin
       SQL.Clear;
       SQL.Add("SELECT * FROM Kv");
       SQL.Add(" WHERE");
       if FamEdit.Text <> "" then
        begin
          if SovpCheckBox.Checked then
           SQL.Add(" Fam = :tFam")
          else
           SQL.Add(" Fam LIKE :tFam%");
          end;
        end;
     Params[0].AsString := AnsiUpperCase(FamEdit.Text);

При таком коде выдается вот такая ошибка:
http://yurec66.narod.ru/vopr1.jpg
Как правильно сформировать строку запроса в зависимости от разных ситуаций?


 
Sergey13 ©   (2006-04-25 13:40) [1]

ShowMessage(SQL.Text) вставь и наблюдай что за запрос ты сформировал.
Например с FamEdit.Text = "" запрос будет
SELECT * FROM Kv WHERE


 
Johnmen ©   (2006-04-25 13:40) [2]

SQL.Add(" Fam LIKE :tFam + (*сцепление строк*) """%""");


 
kyn66 ©   (2006-04-25 13:48) [3]

>>Например с FamEdit.Text = "" запрос будет
>>SELECT * FROM Kv WHERE
Не совсем понятно???

>>Johnmen
Со сцеплением тоже не проходит. ADS видно не принимает двойные кавычки, для не го строка это -"СТРОКА", а не "Строка"


 
Johnmen ©   (2006-04-25 13:57) [4]


> kyn66 ©   (25.04.06 13:48) [3]
> Со сцеплением тоже не проходит. ADS видно не принимает двойные
> кавычки,


А это не двойные. Это сдублированные одинарные.


 
evvcom ©   (2006-04-25 13:58) [5]


> SQL-запрос с параметрами выдает ошибки

А текст ошибки, видимо, военная тайна. Я так предполагаю, что ошибка типа того, что параметров не находит. Это означает всего навсего, что после формирования текста запроса надо дать команду распарсить запрос. Попробуй выполнить Query.Prepare перед обращением к параметрам.


 
evvcom ©   (2006-04-25 13:59) [6]

Кстати, а что такое ADS?


 
sniknik ©   (2006-04-25 14:00) [7]

> Как правильно сформировать строку запроса в зависимости от разных ситуаций?
 With KvQuery do begin
    SQL.Clear;
    SQL.Add("SELECT * FROM Kv");
    if FamEdit.Text <> "" then begin
       if SovpCheckBox.Checked then SQL.Add("WHERE Fam = :tFam")
                                          else  SQL.Add("WHERE Fam LIKE :tFam+""%""");
       Params[0].AsString := AnsiUpperCase(FamEdit.Text);
    end;
    Open;
 end;


 
sniknik ©   (2006-04-25 14:04) [8]

> Кстати, а что такое ADS?
адвантаже датабесе сервер (вроде так), еще один sql серверный/локальный движок работает с dbf но основной формат свой собственный.


 
kyn66 ©   (2006-04-25 14:34) [9]

>evvcom
Текст ошибки представлен в самом начале. См[1]


 
kyn66 ©   (2006-04-25 14:39) [10]

>> sniknik
Ай , спасибо!!! Заработало! Все делов в кавычках было !!!! Спасибо!


 
sniknik ©   (2006-04-25 15:04) [11]

> Все делов в кавычках было !!!!
не только, просто столкнулся ты только с этим, посмотри где ты значение параметру задаеш и где я, и что будет если  FamEdit.Text будет = "", и к чему будет WHERE в запросе "прицеплено".


 
Dummes   (2006-04-25 18:14) [12]

//Читаемость получше!!!

case SovpCheckBox.Checked do
begin
 true: SQL.Add(" Fam = :tFam");
 false: SQL.Add(" Fam LIKE :tFam%");
end;


 
Плохиш ©   (2006-04-25 18:36) [13]


> Dummes   (25.04.06 18:14) [12]

Сам-то понял, какие кнопки надавил?



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

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

Наверх




Память: 0.49 MB
Время: 0.058 c
15-1148284383
Юрий Зотов
2006-05-22 11:53
2006.06.18
Простенький вопросец по HTML


15-1148294900
Имя не скажу
2006-05-22 14:48
2006.06.18
Маленький тренажер для мозга :))


15-1148379401
simmoril
2006-05-23 14:16
2006.06.18
Помогите решить задачу


15-1148561342
Petr V. Abramov
2006-05-25 16:49
2006.06.18
не запускается BDE-приложение


2-1149247422
XTD
2006-06-02 15:23
2006.06.18
Объясните как написать функцию с возвратом ?