![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
простой вопрос по выборке из ib баз [D7, IB6.x]
Maxim_____ © (2004-10-21 00:47:00)Извините за глупый вопрос.
Есть некоторый массив челых чисел,
от одного до 10000.
numarr array of integer;
Пишу запрос
select * from tablename where (fld21=213) and
((fld15= numarr[0]) or(fld15= numarr[1]) or(fld15= numarr[2]) or ...... )
т.е. получается очень длинный текст запроса с этим OR
Как-то это нехорошо смотрится, неоптимально,
может быть сущёствует более простой способ?
Может быть есть какой-нибудь ibx компонент, который может это упростить, а то большая часть траффика уйдет на текст запроса.
msguns (2004-10-21 09:39:00) [1]ИМХО, в таких случаях, предпочтительнее вместо длиннючего текста запроса использовать ссылочный НД, который можно получить как временную таблицу и соответствующим образом заполнить.
А вообще-то разделяю недоумение ЮЮ © (21.10.04 02:40) [1]
Наталия (2004-10-21 07:37:00) [2]Может быть так подойдет?
select * from tablename where (fld21=213) and
fld15 between numarr[0] and numarr[9999]
При условии, что в numarr[0] - наименьшее целое число,
а в numarr[9999] - наибольшее.
Или нужно более конкретно задачу сформулировать, тогда, возможно, ещё какие-то условия появятся...
ЮЮ (2004-10-21 02:40:00) [3]И откуда, интересно, этот массив возник?