Matthias wrote:
> Nahezu alle Suchmasken bieten doch die M�glichkeit, mehrere Begriffe
> einzugeben.
> Das m�chte ich aber mit einer SP realisieren, und dabei macht mich
> die Tatsache, dass ich vorher nicht weiss, wieviele Begriffe der
> Benutzer eingeben wird, ziemlich ratlos. Kann mir jemand einen Tip
> geben?
Hallo Matthias,
vergiss dynamisches SQL (IMHO ist das Dreck)
Ich gehe mal davon aus, dass Du in Deiner SP eine Spalte mit mehreren
Begriffen abfragen willst.
Normale Vorgehensweise:
SELECT bla FROM table WHERE Spalte1 = 'begriff1' AND Spalte1 = 'begriff2'
usw
Wenn Du nun nicht weisst, wieviel Begriffe an die SP �bergeben werden,
siehst Du ziemlich alt aus
L�sung:
1.) Anlegen einer benutzerdefinierten Funktion:
Quellcode
CREATE FUNCTION charlist_to_table
(@list nvarchar(4000),
@delimiter nchar(1) = ',')
RETURNS @tbl TABLE (str nvarchar(4000)) AS
BEGIN
DECLARE @pos int
DECLARE @tmpval nvarchar(4000)
SET @pos = charindex(@delimiter, @list)
WHILE @pos > 0
BEGIN
SET @tmpval = left(@list, charindex(@delimiter, @list) - 1)
INSERT @tbl (str) VALUES(@tmpval)
SET @list = substring(@list, @pos + 1, len(@list))
SET @pos = charindex(@delimiter, @list)
END
INSERT @tbl (str) VALUES(@list)
RETURN
END
2.) Quellcode SP:
CREATE PROCEDURE sp_meinesuch_sp
@suchbegriffe varchar (5000)
AS
DECLARE @delimiter nchar(1)
SET @delimiter =','
SELECT * FROM myTable WHERE Spalte1 IN (SELECT * FROM
dbo.charlist_to_table(@suchbegriffe,@delimiter) )
3.) Aufruf der SP:
EXEC sp_meinesuch_sp 'Begriff1,Begriff2, Begriff3'
Gruss
Frank
_______________________________________________
Coffeehouse Mailingliste, Postings senden an:
[EMAIL PROTECTED]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/coffeehouse