webForumDet fria alternativet
Logga in / Bli medlem

Kommaproblem med SP

Databaser & SQL

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

Medlem sedan aug. 2000333 inlägg
Frågan#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!!

379 ms totalt · 4 externa anrop · v20260731065814-full.14655e19
117 ms — deklarationer (db)
121 ms — hämta statistik (db)
137 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)