Huiiii ... ich war gerade mal essen ... vielen Dank erstmal an alle! Bis gleich vielleicht ... ;-) Matthias
----- Original Message ----- From: "Frank Matthiesen" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, June 30, 2004 2:53 PM Subject: Re: [Coffeehouse] SP mit n Parametern > 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 > > _______________________________________________ Coffeehouse Mailingliste, Postings senden an: [EMAIL PROTECTED] An-/Abmeldung und Suchfunktion unter: http://www.glengamoi.com/mailman/listinfo/coffeehouse
