Главная страница
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.014 c
14-69999
McSimm + McSimm
2002-03-15 21:06
2002.04.22
Извините, просто тест


1-69806
MystiX
2002-04-09 18:32
2002.04.22
Help with mouse


3-69716
Viktor Erko
2002-03-30 10:27
2002.04.22
Потеря 1-4 коп. при суммировании чисел из базы даных


14-70033
Ajax
2002-03-13 19:09
2002.04.22
Текст в .doc


1-69895
DeMoN-777
2002-04-09 00:43
2002.04.22
Проблема с текстовымми файлами