Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];

Вниз

ПОМОГИТЕ грамотно организовать поиск на базе SP?   Найти похожие ветки 

 
DBDev   (2003-05-29 16:55) [0]

Собирать в процедуре текст запроса, а затем выполнять:
напр:

declare @query_text nvarchar(512)
declare @IsStated INT
SET @IsStated = 0
SET @query_text = "SELECT * FROM Base "
if (@RegPlaceID <> "0")
begin
if (@IsStated = 0)
begin
SET @IsStated = 1
SET @query_text = @query_text + " WHERE RegPlaceID = " + @RegPlaceID
end
...

exec sp_executesql @query_text


Если собирать, то каким образом строить выражения содержащие строки, то есть:

SET @query_text = @query_text + " WHERE Reg LIKE = " + СИМВОЛ_КАВЫЧКИ + @Reg + СИМВОЛ_КАВЫЧКИ

Что есть символ кавычки в этом случае ?

А если сразу выполять, то как прописать случай если фильтр равен нулю, не нагромождать же процедуру и впрям конструкциями типа:

IF @SupplierID = 0
Select a,b,c from T
IF @SupplierID <> 0
Select a,b,c from T WHERE SupplierID = @SupplierID


 
NAlexey   (2003-05-29 17:06) [1]

>Что есть символ кавычки в этом случае ?
" "" - это есть символ кавычки
>не нагромождать же процедуру и впрям
нагромождать


 
NAlexey   (2003-05-29 17:09) [2]

Оговорюсь: Грамотно нагромаждать -


IF @SupplierID = 0
SET @Part = ""
IF @SupplierID <> 0
SET @Part = "WHERE SupplierID = @SupplierID"
SET @query_text = @query_text + @Part


 
SergSuper   (2003-05-30 10:27) [3]

откуда такая любовь к динамическим запросам?
написать 4 строчки - это нагромаждать, а написать 13 строчек с динамическим запросом - это типа нет, типа понятней стало
ну не знаю, я бы так написал
Select a,b,c from T WHERE SupplierID = @SupplierID or @SupplierID = 0



 
Sandman25   (2003-05-30 10:57) [4]

IF @SupplierID <> 0
SET @query_text = @query_text + "WHERE SupplierID = @SupplierID"

А если условий несколько, то делаешь так
SET @query_text = "select * from t1 where 1=1"
IF @SupplierID <> 0
SET @query_text = @query_text + "AND SupplierID = @SupplierID"
IF @Detail <> 0
SET @query_text = @query_text + "AND Detail = @Detail"
IF @PostNumber <> 0
SET @query_text = @query_text + "AND PostNumber = @PostNumber"


 
Sandman25   (2003-05-30 11:03) [5]

Упс, пробелы перед AND забыл :)



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

Форум: "Базы";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.035 c
9-83851
ArtGamer my name
2003-01-12 21:37
2003.06.26
А как в GLScene удалять объекты из сцены в Runtime???


14-84734
OlegM
2003-06-05 14:35
2003.06.26
Будет ли работать WebBrowser если на компе польз. не устан. IE


1-84183
Dwemer_
2003-06-11 16:20
2003.06.26
Ошибка при создании методом TStrings.Create


3-83914
Инна
2003-06-03 14:41
2003.06.26
почему может не работать?


14-84648
maxk
2003-06-04 19:01
2003.06.26
webbrowser или.... ???





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