Форум: "Базы";
Текущий архив: 2002.01.21;
Скачать: [xml.tar.bz2];
Внизпеременные в sql в mssql?? Найти похожие ветки
← →
ol (2001-12-18 10:01) [0]Подскажите правильно ли определяю переменные
where s.dat_tek between @d1 and @d2 and
s.subdivid=@podr
если да то как их потом прописать в компоненте(использую ADOQuery1),в оракле все гораздо проще, он сам их находит,
а тут что нужно руками прописывать в parameters?
пробовал прописать d1,d2,podr - ругается
← →
SergSuper (2001-12-18 10:18) [1]Вы путаете переменные сервера и параметры
Первые существуют только на сервере, вторые заполнются клиентской частью перед отсылкой запроса.
Если Вы напишите
where s.dat_tek between :d1 and :d2 and
s.subdivid=:podr
то "он сам их найдёт"
← →
handra (2001-12-18 10:23) [2]Параметры в TADOQuery прописывают примерно так:
where s.dat_tek between :d1 and :d2 and s.subdivid=:podr
Есть одна тонкость! Параметры с одинаковыми именами по ParamByName не устанавливаются все (только первый из них), т.е конструкция %
where s.date_tek=:d1 or :d1 is null
по ParamByName не заработает, я делаю так:
declare @d1 datetime
set @d1=:d1
...
where s.date_tek=@d1 or @d1 is null
в этом случае нужно указать типы параметров вручную, а если используется динамически созданный TADOQuery, то вызывать Parameters.ParseSQL и для параметров со значением NULL вручную указывать тип данных
← →
ol (2001-12-18 11:43) [3]>Если Вы напишите
>where s.dat_tek between :d1 and :d2 and
> s.subdivid=:podr
Так я уже пробовал
выдается ошибка
Line 43: Incorrect syntax near ":".
← →
Delirium (2001-12-18 11:46) [4]
....
where (s.dat_tek between :d1 and :d2 ) and
( s.subdivid=:podr )
← →
ol (2001-12-18 11:55) [5]>where (s.dat_tek between :d1 and :d2 ) and
>( s.subdivid=:podr )
Line 43: Incorrect syntax near ":".
← →
Delirium (2001-12-18 12:40) [6]Попробуй вставить пробелы перед ":" и после параметров, хотя у меня всё и так работает.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.01.21;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c