Форум: "Базы";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];
ВнизДинамически изменяемый запрос из Хранимой процедуры Найти похожие ветки
← →
pic509 © (2006-08-28 10:32) [0]Люди, подскажите решение следующей задачи:
На сервере MSSQL 2000 я храню таблицу, которая закрыта по выборке для клиентов БД. Для организации доступа к ней я использую Хранимую процедуру. Вся проблема в том, что мне нужно формировать запрос с изменяемыми условиями выборки (передаются как параметры к ХП), например за определенный диапазон дат и (или) по определенному полю и т.п. Я пытался формитровать запрос как строковую переменную, а затем запускать ее EXEC(str). Но в этом случае на клиентской машине срабатывает запрет на выборку. Как еще можно сформировать динамически изменяемый запрос в ХП ???
← →
Ega23 © (2006-08-28 10:37) [1]
Set NoCount ON;
Create Table #Temp (.....);
Exec( "insert into #Temp Select ... from #yout_temp_table");
Set NoCount OFF;
Select * from #Temp;
первое, что пришло в голову..
← →
Fay © (2006-08-28 10:48) [2]2 pic509 © (28.08.06 10:32)
Возможно, стоит воспользоваться view
← →
pic509 © (2006-08-28 10:49) [3]это решение не подходит, т.к. таких выборок клиентская машина должна выполнить как минимум несколько 10"000, я думаю сервер просто станет... Нельзя ли одним Динамически изменяемым SELECT выполнить выборку 1 записи???
← →
Fay © (2006-08-28 10:51) [4]2 pic509 © (28.08.06 10:49) [3]
Ничего не понял. Совсем. Перефразируй.
← →
ANB © (2006-08-28 10:55) [5]
> т.к. таких выборок клиентская машина должна выполнить как
> минимум несколько 10"000,
Чтобы показать одну форму ? Тогда при любом методе сервер ляжет.
← →
pic509 © (2006-08-28 11:09) [6]разве VIEW работает на MSSQL 2000?
← →
Fay © (2006-08-28 11:10) [7]2 pic509 © (28.08.06 11:09) [6]
Есть не так мгого вещей, которыу там не работают.
Чисто по приколу, почитай BOL.
← →
ANB © (2006-08-28 11:12) [8]
> pic509 © (28.08.06 11:09) [6]
> разве VIEW работает на MSSQL 2000?
Имхо. Интересно, в какой из приличных СУБД view не работает ?
← →
Ega23 © (2006-08-28 11:20) [9]
> разве VIEW работает на MSSQL 2000?
Аж поперхнулся...
← →
Ega23 © (2006-08-28 11:28) [10]
> Возможно, стоит воспользоваться view
>
Разве во View можно параметры передать?
← →
Fay © (2006-08-28 11:36) [11]2 Ega23 © (28.08.06 11:28) [10]
Нельзя, но можно построить нормальный запрос.
← →
Ega23 © (2006-08-28 11:43) [12]
> Нельзя, но можно построить нормальный запрос.
А, в этом смысле... Понял...
Неясно, правда, что это за архитектура таблиц и пермишенов у автора. Подозрения накладывает...
← →
pic509 © (2006-08-28 11:50) [13]ОГРОМНОЕ СПАСИБО EGA23 !!! Проверил - заработало !!!
← →
saxon (2006-08-28 12:00) [14]Не совсем понятно что есть - > Динамически изменяемый запрос или - > запрос с изменяемыми условиями выборки ? Когда он/они меняются?
Если имееться ввиду, что могут приходить по разному проинициализированные параметры, и в зависимости от этого ... ?
Можно предложить такой вариант :
create procedure Proc1
(
@pID integer = null,
...
)
as
...
select * from Table1 (nolock) where ((@pID is null) or (Table1.ID = @pID) ...
go
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.098 c