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

Вниз

Вопрос по SQL   Найти похожие ветки 

 
Мишаня   (2016-03-01 18:06) [0]

Здравствуйте мастера! Изучаю SQL, тестю на Firebird 2.5
Не работает вот такая конструкция:

IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add("SELECT * FROM MYTABLE WHERE ((MYFIELD1 CONTAINING :Name_param1) or (MYFIELD2 CONTAINING :Name_param1)) and  (MYFIELD1=:Name_param2)");
IBQuery1.Params[0].AsString:=Edit1.Text;
IBQuery1.Params[1].AsString:=Edit2.Text;
if not IBQuery1.Prepared then IBQuery1.Prepare;
IBQuery1.Open;

Хотя совместные данные из эдитов точно есть в базе и должно показать результат, а ничего не находит... (((
Что делаю не так?


 
Мишаня   (2016-03-01 18:07) [1]

Вносил(смотрел) в IBExpert все...


 
Плохиш ©   (2016-03-01 18:12) [2]

В запросе три параметра


 
Мишаня   (2016-03-01 18:17) [3]

Для первого и второго данные подставляю через эдиты.


 
Мишаня   (2016-03-01 18:22) [4]

Заработала такая конструкция:

IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add("SELECT * FROM MYTABLE WHERE ((MYFIELD1 CONTAINING :Name_param1) or (MYFIELD2 CONTAINING :Name_param2)) and  (MYFIELD1=:Name_param3)");
IBQuery1.Params[0].AsString:=Edit1.Text;
IBQuery1.Params[1].AsString:=Edit1.Text;
IBQuery1.Params[2].AsString:=Edit2.Text;
if not IBQuery1.Prepared then IBQuery1.Prepare;
IBQuery1.Open;

Что в SQL не так с именами? Все-равно не понимаю почему первый вариант не пашет?


 
эндсоувот ©   (2016-03-01 18:22) [5]

для начала надо уяснить и не сомневаться в том, что если выборка пуста, то под условие where не попало ни одной записи.

после этого надо выдохнуть и начать искать то условие, которое отсекло ожидаемые записи.


 
эндсоувот ©   (2016-03-01 18:24) [6]

Для первого и второго данные подставляю через эдиты.

парамс по индексу ничего не знает про то, что где-то есть еще параметр с таким же именем.

по индексу же присваиваешь


 
Мишаня   (2016-03-01 18:24) [7]

В запросе не допускается повторение параметров?


 
Мишаня   (2016-03-01 18:25) [8]

Аааа.... Нужен ParamByName наверно... ))


 
эндсоувот ©   (2016-03-01 18:27) [9]

В запросе не допускается повторение параметров?


зависит от метода записи параметра по имени.
в адо например по имени будет присвоено значение первому параметру.
остальные одноименные с ним останутся незатронутыми.
в других движках будет по другому или будет точно так же.


 
Мишаня   (2016-03-01 18:30) [10]

Заработал первый вариант в другой редакции:

IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add("SELECT * FROM MYTABLE WHERE ((MYFIELD1 CONTAINING :Name_param1) or (MYFIELD2 CONTAINING :Name_param1)) and  (MYFIELD1=:Name_param2)");
IBQuery1.ParamByName("Name_param1").AsString:=Edit1.Text;
IBQuery1.ParamByName("Name_param2").AsString:=Edit2.Text;
if not IBQuery1.Prepared then IBQuery1.Prepare;
IBQuery1.Open;

Теперь понятно где Муму зарыл Герасим...   )))


 
Мишаня   (2016-03-01 19:06) [11]

Всем спасибо за оперативные и ценные советы! ;)


 
Мишаня   (2016-03-01 23:16) [12]

Избаловали народ SQL-ем... )))


 
Кщд ©   (2016-03-02 07:40) [13]

>Мишаня   (01.03.16 23:16) [12]
>Избаловали народ SQL-ем... )))
SQL к данному вопросу никак не относится



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

Форум: "Начинающим";
Текущий архив: 2018.03.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
2-1458382160
Валя
2016-03-19 13:09
2018.03.04
TreeView мультиселект


2-1456753183
gog
2016-02-29 16:39
2018.03.04
Переделать MessageDlg


2-1458046128
Макака
2016-03-15 15:48
2018.03.04
Создание потоков


2-1456752598
Макака
2016-02-29 16:29
2018.03.04
Проверка условий


2-1458222695
Новичок
2016-03-17 16:51
2018.03.04
Юниты





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