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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.01 c
15-1148551974
цуп
2006-05-25 14:12
2006.06.18
разрыв страницы


1-1147463679
Kostromich
2006-05-12 23:54
2006.06.18
Анализ содержимого выбраной директории


15-1148140715
OSokin
2006-05-20 19:58
2006.06.18
Перлы по ТВ


15-1148405618
Суслик
2006-05-23 21:33
2006.06.18
Про презентацию от Borland


4-1142905761
powerchute
2006-03-21 04:49
2006.06.18
Управление настройками электропитания





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский