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

Вниз

ADOQuery- как правильно работать с параметриз.запросом   Найти похожие ветки 

 
kserg@ukr.net   (2002-04-03 12:17) [0]

Ранее был вар-т select...where ID_PKI=:IdPKI
где IdPKI - пар-р целое число

Возникла необходимость переделать запрос, чтобы выбирать из списка типа where ID_PKI in (1,2,6)

Переделал запрос
select...where ID_PKI in (:IdPKI)
где IdPKI - пар-р строка типа "1,2,6"

select...where ID_PKI in :IdPKI
где IdPKI - пар-р строка типа "(1,2,6)"

В обоих случаях вылетает ошибка.
Как корректно порешить проблему?

Спасибо


 
Aleksandr ©   (2002-04-03 12:25) [1]

Ну, на самом деле здесь проще решать установкой фильтра, а не изменением запроса. Но можно и так:

SELECT * FROM Table
WHERE ID_PKI IN (:ID1,:ID2,:ID3)

И кстати, не советую параметры обзывать именами полей... Бывает, не проскакивает.


 
Johnmen ©   (2002-04-03 12:25) [2]

Ошибка из-за того, что фактически ты хочешь сделать макроподстановку, а не параметр указать !
Для ADO красивого решения не знаю, кроме, как делать запрос целиком динамически...


 
kserg@ukr.net   (2002-04-03 12:52) [3]

> Johnmen © (03.04.02 12:25)
Печальный факт, но всё равно
спасибо, уважаемый, не раз получаю от тебя ответы.

У меня ещё вопросик (немного не в тему):
как в MSSQL можно тестировать запросы на предмет скорости
выполнения различных вар-тов запроса.


 
Johnmen ©   (2002-04-03 13:06) [4]

Ошибка из-за того, что фактически ты хочешь сделать макроподстановку, а не параметр указать !
Для ADO красивого решения не знаю, кроме, как делать запрос целиком динамически...


 
Johnmen ©   (2002-04-03 13:16) [5]

Прошу прощения за дублирование... :(


 
TSV ©   (2002-04-03 13:37) [6]

> kserg@ukr.net (03.04.02 12:52)
Замерять время выполнения запроса:

declare
@time1 datetime,
@time2 datetime

select @time1 = getdate()
select * from table1 -- тестируемый запрос
select @time2 = getdate()

select datediff(ms, @time1, @time2)

Удачи.


 
TSV ©   (2002-04-03 13:39) [7]

Только желательно тестить на реальных данных.
А еще можно смотреть план запроса, пробовать строить индексы и т.д.



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

Текущий архив: 2002.04.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.02 c
1-69831
oomneeq
2002-04-10 18:39
2002.04.22
MRU List открывавшихся проектов в IDE


1-69892
hooky-mars
2002-04-06 19:28
2002.04.22
TShockwaveFlash


3-69723
Hermit
2002-04-01 12:18
2002.04.22
DBGrid и режим редактирования


1-69793
$hiC0
2002-04-10 13:49
2002.04.22
Снова PrintDialog возможно PrintersetupDialog :)


1-69863
erw
2002-04-09 09:51
2002.04.22
Запуск дефолтного почтового клиента