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

Вниз

Как правильнее запрос через ADO или хранимка и sp_executeSql   Найти похожие ветки 

 
svv   (2006-07-20 13:41) [0]

Добрый день!!!

Вот какой вопрос:
есть таблица названий городов, с полем del-признак удалеенности строки.
Почти всегда надо запрашивать данные без удаленных, поэтому подумал что правильнее использовать Хранимую процедуру, НО ИНОГДА НАДО ЗАПРАШИВАТЬ ВСЕ ЗАПИСИ и вот тут возник этот вопрос.
А именно - как сделать правильнее, вот кикие виже варинты (указываю все которое придумал):
1. обычный селект через ADOQuery и если надо дописывать WHERE del=0 или не дописывать этого
2. Две хранимки, Get_goroda и get_gorodaall - но этот вариант не нравиться
3. Хранимка с sp_execsql и по значению параметра менять выполняемый запрос
4. ADOQuery  с sp_execsql

Вот. И что выбрать?

ЗЫ Ожидается много пользователей, так что сохранение плана выполнения не так уж и плохо...

Большое Спасибо!


 
stone ©   (2006-07-20 13:57) [1]


> 2. Две хранимки, Get_goroda и get_gorodaall - но этот вариант
> не нравиться

Достаточно одной
create procedure Get_goroda
@Del bit = null
as
select * from goroda where @Del is null or del=@Del

таким образом сможешь получать не только все записи но и по выбору удаленные/не удаленные


 
Ega23 ©   (2006-07-20 13:59) [2]

CREATE PROCEDURE S_ ......
@ActNam varchar(32)="NONE",
       @Del int=-1,
   ...... Остальные параметры

AS
Declare
  @Result int;

Select @ActNam=RTrim(LTrim(UPPER(@ActNam)));
Set @Result=0;

if ActNam="SEL"
begin
  Select * from ....
  where (@Del=-1 or Del=@Del)
end;

FIN:
Set Nocount OFF;
return(@result);
GO


exec S_.... @ActNam="SEL" - вернёт всё
exec S_.... @ActNam="SEL", @Del=0 - вернёт всё, где del=0
exec S_.... @ActNam="SEL", @Del=1 - вернёт всё, где del=1


 
svv   (2006-07-20 14:23) [3]

2: stone
Спасибо!!!! Что-то я не сообразил...
Что-то такое и надо было!



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

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

Наверх




Память: 0.44 MB
Время: 0.062 c
2-1157649876
dexer
2006-09-07 21:24
2006.09.24
динамический TEdit и onkeyDown


2-1157531619
webpauk
2006-09-06 12:33
2006.09.24
как определить в каком столбце DBGrid юзер кликнул мышью?


2-1157024256
2face
2006-08-31 15:37
2006.09.24
Ошибка


2-1157444822
Jenny
2006-09-05 12:27
2006.09.24
C чего начать написания сетевой базы данных


1-1155392466
!_SM_!
2006-08-12 18:21
2006.09.24
OnCreate, OnDestroy





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский