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

Вниз

SQL: SELECT ... WHERE ID_Fld IN --->MyArray<--- ???   Найти похожие ветки 

 
Silver_ ©   (2004-01-23 13:37) [0]

SELECT Fld1, Fld2
FROM MyTable_2
WHERE ID_Fld IN Dinamic_Array_of_Integer


Словами: Надо выбрать записи, ID_Fld которых занесены в Array, который динамически заполняется в проге

 Текст запроса может быть составлен динамически или через параметр, значения не имеет
динамически составлять WHERE условие типа

WHERE ID_Fld = 1 OR ID_Fld = 4 OR ID_Fld = 7 OR ID_Fld = 3 ...

не годится, так как значений может быть бог знает сколько много и могу нарваться на ругань от сервера (Access-а)
типа слишком длинный запрос или еще че нибудь


 
Reindeer Moss Eater ©   (2004-01-23 13:44) [1]

Словами: Надо выбрать записи, ID_Fld которых занесены в Array, который динамически заполняется в проге

Серверу передается запрос в виде текста.
Все массивы остаются в приложении.
Пройтись по массиву и сформировать строку
.... in (value1,value2,....,valueN)


 
Курдль ©   (2004-01-23 13:47) [2]


> Пройтись по массиву и сформировать строку
> .... in (value1,value2,....,valueN)


Только не увлекаться, а то даже "Оракл" один раз на такое ругнулся типа "Ваш запрос непозволительно длинный!"


 
Hint ©   (2004-01-23 13:48) [3]

Все для MSSQL 2000
1. Заполнять temp table в программе нужными значениями, а потом уже SELECT ... WHERE ID_Fls IN (SELECT ID_Fld From temp_table).

2. Формировать с программе строку типа "(0, 1, 2)", передавать в Stored Procedure, текст которы примерно такой:


CREATE STORED PROCEDURE usp_Example
 @dyn_arr varchar(N) -- n это ваше, скока надо
AS
 EXEC("SELECT ... WHERE ID_Fld IN " + @dy_arr)
go


 
Тимохов ©   (2004-01-23 13:53) [4]

Вариант первый из 3 будет существенно быстрей при многократном обращении к такому запросу. Я бы еще индекс на временную таблицу сделал.


 
ZrenBy ©   (2004-02-20 16:13) [5]

http://www.sql.ru/articles/mssql/03060701ArraysAndListsInSQLServer.shtml



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

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

Наверх




Память: 0.47 MB
Время: 0.024 c
14-1078222247
Goida
2004-03-02 13:10
2004.03.28
А что такое ИМХО???


14-1077696467
Дельфин
2004-02-25 11:07
2004.03.28
Модель солнечной системы


14-1078331537
Rouse_
2004-03-03 19:32
2004.03.28
С Днем Рождения 03.03.2004


3-1078157676
Subdigger
2004-03-01 19:14
2004.03.28
inplaceeditor


8-1067867901
MAXHO
2003-11-03 16:58
2004.03.28
Звук, Звук и ещё раз звук......