webForumDet fria alternativet

Kommaproblem med SP

4 svar · 203 visningar · startad av hakan@4u2.se

hakan@4u2.seMedlem sedan aug. 2000333 inlägg
#1

Har en sp som ska ha två värden

sql = "SP_Test varde1, varde2"

Värde1 = 't3.vet_ej_svar = 0'
Värde2 = deltagare_ny.fraga1 like '%,1,%'

Men det går inte eftersom Värde2 innehåller komman, och då tror han att jag försöker skicka in mer än 2st värden, hur löser jag det! Värde1 och Värde är dynamiska!

Tack på förhand

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Det är nog inte , som ställer till det utan '. Du får byta all förekomster mot 2 st (' ')

v1 = replace("'t3.vet_ej_svar = 0'","'","''")
v2 = replace("'deltagare_ny.fraga1 like '%,1,%'","'"',"''")

sql = "execute sp_test " & v1 & "," & v2
hakan@4u2.seMedlem sedan aug. 2000333 inlägg
#3

mer en 8000 tecken i invariabeln till SP:n

Nu fungerar det! Tack LarsG

Ett problem till bara, mina strängar som skickas in i SP:n är mer en 8000 tecken ibland, vad använder jag för datatyp då??

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Du får dela upp det i flera variabler/parametrar när du gör exec

create procedure sydkoreavinnervm (@p1 varchar(8000),@p2 varchar(8000),@p3 varcahr(8000))
as
declare @s1,@s2,@s3 varchar(8000)

set @s1 = 'select ...' 
set @s2 = ' where ...'
set @s3 = ' order by ...'

exec(@s1+ @p1 + @s2 + @p2 + @s3 + @p3)

Även om varje enskild variabel är max 8000 tecken så går det att konkatenera ihop dom till en längre sträng. Det blir lite pyssel men det går.

Det finns en datatyp som heter text som rymmer mer än 8000 tecken men den går inte att använda i detta sammanhang.

hakan@4u2.seMedlem sedan aug. 2000333 inlägg
#5

Vad skulle jag göra utan dig LarsG!

Tack igen!!

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)