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

Вниз

Как правильно передать параметру в запросе строку ...?   Найти похожие ветки 

 
ZSergey   (2004-03-31 20:36) [0]

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

S: string
s:="1200"+""" , """+"1404";
или
s:="""+"1200"+"""+","+"""+"1404"+""";
Myquery.sql.add("select ... ");
Myquery.sql.add("from ... ") ;
Myquery.sql.add("where a.tip in (:S)"); //хотя .. in ("1200","1404") работает
MyQuety.open;
запрос возвражает NULL! Как правильно
передать переменной S данную строку, чтобы работал запрос?
Может со скобками заморочки? Заранее благодарю!


 
Desdechado ©   (2004-03-31 20:40) [1]

s -  переменная в Delphi,
:S - параметр запроса
а это разные веши
Myquery.sql.add("where a.tip in (" + S + ")");


 
ZSergey   (2004-03-31 20:53) [2]

Ваш пример не работает, появляется ошибка conversion error from string "T".
Да и вопрос не в том, что S параметр или переменная!
Мне нужно передать значение именно в параметр, пусть будет SS!


 
Nikolay M. ©   (2004-03-31 21:43) [3]

В данном случае через параметр нельзя, только динамически формировать текст запроса.


 
sniknik ©   (2004-03-31 21:57) [4]

нужно, так чего не передаеш? где строка MyQuety.params/parameters/parambyname/parameters.parambyname/в зависимости от компанента....value:= s;
???
хотя так у тебя не сработает, conversion error from string явно говорит что преобразовать не может. типы не те.
пытаешся в строке как в массиве искать.


 
sniknik ©   (2004-03-31 22:00) [5]

Nikolay M. ©   (31.03.04 21:43) [3]
почему нельзя? есть же типы параметров массив, может и сработает с чем нибудь (на OLEDB как самый новый есть надежда, но сам не пробовал)


 
Sergey_Masloff   (2004-04-01 09:13) [6]

Параметром тут ну никак не получится. Сервер разбирает текст запроса 1 раз а потом только связывает переменные. Тут 1 переменная и сервер только ее и свяжет. Ну нельзя же в самом деле выполнить запрос

select * from table
where field in("1,2,3,4")

а вы именно это пытаетесь сделать.


 
Nikolay M. ©   (2004-04-01 09:42) [7]


> sniknik ©   (31.03.04 22:00) [5]

А ты сам ftArray у параметра пробовал выставить?
Не говоря уже о том, что в сабже указан IB, так что скорее всего OLE DB там и не пахнет.
Моя имха: только динамически.  Буду рад, если переубедюсь на работающем примере :)


 
Sergey_Masloff   (2004-04-01 09:49) [8]

Nikolay M. ©   (01.04.04 09:42) [7]
>в сабже указан IB, так что скорее всего OLE DB там и не пахнет
почекму? Что OLE DB для IB нет уже? с каких пор?

>Буду рад, если переубедюсь на работающем примере :)
и не надейся...


 
Nikolay M. ©   (2004-04-01 09:55) [9]


> почекму? Что OLE DB для IB нет уже? с каких пор?

Да никуда он не девался, просто, скорее всего у автора BDE или IBX.


> >Буду рад, если переубедюсь на работающем примере :)
> и не надейся...

Убедил :)


 
Sergey_Masloff   (2004-04-01 10:01) [10]

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

s = "select anykey from anytable";
Query.SQL.Text := "select x,y,z from mytable where key in(:par)";
Query.Params[0].AsString := s;
Query.Open();

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


 
Nikolay M. ©   (2004-04-01 10:03) [11]


> "select anykey from anytable"

А на фига для этого параметр? :)


 
sniknik ©   (2004-04-01 11:12) [12]

Nikolay M. ©   (01.04.04 09:42) [7]
> А ты сам ftArray у параметра пробовал выставить?
почитай выше там прямо сказано что нет. и если пробовать то не прямо в визуальном компоненте его выставлять, а задать параметр через "грейтепараметр" у обьекта, обходя борландовские методы (возможно нереализованные для этого типа).
но сам то тип есть и не исключено что ктото его поддерживает, так что утверждать однозначно что такого не бывает я бы не стал.



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

Форум: "Базы";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.045 c
3-1080629375
Daniel
2004-03-30 10:49
2004.04.25
создание DB класса


14-1081106583
Феликс
2004-04-04 23:23
2004.04.25
Вопрос про определение градуса с картинкой.


1-1081153034
Вано
2004-04-05 12:17
2004.04.25
Связь с приложениями и папками


14-1080798086
Polevi
2004-04-01 09:41
2004.04.25
MS Open Sourse


6-1077296851
Сергей Чурсин
2004-02-20 20:07
2004.04.25
Как убрать Netbeui,не убирая имена компов, шаринги в Netw. ?





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