ironheadMedlem sedan mars 20011 346 inlägg Hej!
Jag har blivit varnad på detta forum tidigare för att använda strängar i Lagrade Procedurer.
Problemet är att det är himla enkelt om jag vill skicka in ett eller flera värden in i SP:n.
Hur ska man göra istället?
ex. denna parameter sFM tar ett eller flera val med (or/and), hur ska man lösa det utan att bygga strängar i SP:n?
if @sFM <> ''
begin
set @CommaWk = 0
set @SQLString = @SQLString + N'and ('
select @iCommaAt = CHARINDEX(',', @sFM)
while @iCommaAt > 0
begin
if @CommaWk > 0 set @SQLString = @SQLString + N'or '
if substring(@sFM, 1, @iCommaAt - 1) > ''
begin
set @CommaWk = @CommaWk + 1
set @SQLString = @SQLString + 'sTest.sFM = ' + substring(@sFM, 1, @iCommaAt - 1)
end
select @sFM = substring(@sFM, @iCommaAt + 1, 255)
select @iCommaAt = charindex(',', @sFM)
end
LarsGMedlem sedan dec. 200012 464 inlägg Om du har and/or så går det inte på något annat sätt. Om du ändå skall bygga strängar kan du lika gärna göra det i något språk som har bättre stöd för stränghantering än vad T-SQL har.
ironheadMedlem sedan mars 20011 346 inlägg
LarsG skrev:
Om du har and/or så går det inte på något annat sätt. Om du ändå skall bygga strängar kan du lika gärna göra det i något språk som har bättre stöd för stränghantering än vad T-SQL har.
Ponera att jag byggt ihop min sträng i t.ex. ASP....hur använder jag den i min SP sen då?
LarsGMedlem sedan dec. 200012 464 inlägg Om du vill skicka den som en parameter till en procedure så får du använda exec eller sp_execute. Men du har ingen fördel av att anropa en procedur, du kan lika gärna exekvera det direkt från din klient.
ironheadMedlem sedan mars 20011 346 inlägg aha! ok! Tack för svaren.
ironheadMedlem sedan mars 20011 346 inlägg Skulle det vara någon skillnad om jag bara använde ett av uttrycken...t.ex. "AND" ?