Главная страница
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.011 c
3-69682
Pashafess
2002-03-22 08:41
2002.04.22
Помогите с CreateDatabase !


1-69821
hooky-mars
2002-04-10 18:38
2002.04.22
SystemTray&Windows


14-69977
Алексей Петров
2002-03-12 14:28
2002.04.22
Можно ли быть профессионалом - программистом, не имея высшего образования?


1-69767
VJar
2002-04-09 21:35
2002.04.22
IP-адрес сервера


1-69782
Jaxtor
2002-04-10 12:07
2002.04.22
Закрытие окна MDIChild программным методом