Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
1-69863
erw
2002-04-09 09:51
2002.04.22
Запуск дефолтного почтового клиента


14-69985
Fellomena
2002-03-14 13:04
2002.04.22
VFortran & MultiThreads Applications


3-69654
Hiks
2002-03-29 08:48
2002.04.22
---|Ветка была без названия|---


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


14-69981
Philipps
2002-03-14 09:40
2002.04.22
Как сделать proxy сервер на делфи?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский