Главная страница
    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.042 c
1-1081138205
_sulent
2004-04-05 08:10
2004.04.25
Tray...


14-1080588239
Kom Zu Mir
2004-03-29 23:23
2004.04.25
Передача файлов через интернет между двумя компами


1-1081246688
Вова
2004-04-06 14:18
2004.04.25
Как убрать колонтитулы при печати из TWebBrowser


7-1078344685
Raki
2004-03-03 23:11
2004.04.25
Drag`n`Drop до того, как пользователь отпустит кнопку мыши


14-1080899426
Andryk
2004-04-02 13:50
2004.04.25
Народ есть вопросец!





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