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

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.035 c
7-1077703723
_shark
2004-02-25 13:08
2004.04.25
Здрасти многоуважаемые. Как можно из сервиса запустить программу


1-1081489079
Riant
2004-04-09 09:37
2004.04.25
Excel в Delphi


1-1081419182
ctrannik
2004-04-08 14:13
2004.04.25
Работа со звуком


7-1078177032
Sergeika
2004-03-02 00:37
2004.04.25
Как отловить нажатие мультимедиа клавиши на клавиатуре?


3-1080335030
Vemer
2004-03-27 00:03
2004.04.25
SQL запрос без "IN" составить хочу..