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

Вниз

Динамически изменяемый запрос из Хранимой процедуры   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.036 c
2-1159894378
Fantasy
2006-10-03 20:52
2006.10.22
IBBackupService


2-1159858909
DevilDevil
2006-10-03 11:01
2006.10.22
OnClick() VS OnDblClick()


2-1160276062
m-kirill-2003
2006-10-08 06:54
2006.10.22
Кнопка на новую форму.


2-1160028164
dera
2006-10-05 10:02
2006.10.22
Как на форме разместить web-страницу?


6-1148594850
yaro
2006-05-26 02:07
2006.10.22
Не принимает сообщения почтовый сервер