Kommaproblem med SP

Databaser & SQL

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

Medlem sedan aug. 2000333 inlägg
Trådstart#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

Medlem 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
Medlem 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å??

Medlem 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.

Medlem sedan aug. 2000333 inlägg
#5

Vad skulle jag göra utan dig LarsG!

Tack igen!!

259 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)