webForumDet fria alternativet

NULL in i MSSQ2005 med INSERT

2 svar · 444 visningar · startad av budg1e

budg1eMedlem sedan apr. 2005116 inlägg
#1

Hej,
Jag vill kopiera en rad i databasen och det löser jag genom att öppna ett recordset och hämta in fälten i variabler. Därefter infogar jag en ny rad med INSERT kommandot. Mitt problem är att jag vill ha NULL när strängen är tom. Om te x fältet "Lagledare" är tomt vill jag att den nya posten skriver NULL till databasen. För närvarande skickar den in en tom sträng istället för NULL.

Jag misstänker att det beror på tecken 'runt variabeln'

Jag kan ju inte ta bort ' ' eftersom det är ett textfält.

Som alternativ till INSERT kan jag använda RecordSet.AddNew och då fungerar det med NULL. Finns det något sätt att lösa med INSERT kommandot eller finns det ett bättre sätt att kopiera en rad i en databas (en del fält ska ha samma värde men inte alla).

		Call Execute(_
			"INSERT INTO tbl_Laginfo (" & _
				"CompID," & _
				"Lagnamn," & _
				"Lagledare," & _
				"KlassID" & _
			") VALUES (" & _
				CompID & "," & _
				"'" & SQLCheck(Lagnamn) & "'," & _
				"'" & SQLCheck(Lagledare) & "'," & _
				SQLCheck(KlassID) & _
			'")")

Funktionen som kontrollerar om variabeln innehåller något. Det kanske går att ordna här?

Function SQLCheck(strValue)
    if isNULL(strValue) OR Len(strValue) < 1 OR (strValue) = "" then
      SQLCheck = NULL  
    else
        SQLCheck=Replace(strValue,"'","''")
    End If
End Function
LarsGMedlem sedan dec. 200012 464 inlägg
#2
Call Execute(_
			"INSERT INTO tbl_Laginfo (" & _
				"CompID," & _
				"Lagnamn," & _
				"Lagledare," & _
				"KlassID" & _
			") VALUES (" & _
				CompID & "," & _
				SQLCheck(Lagnamn,1) & "," & _
				SQLCheck(Lagledare,1) & "," & _
				SQLCheck(KlassID,0) & _
			'")")

Function SQLCheck(strValue,datatype)
    if  isNULL(strValue) OR Len(strValue) < 1 OR (strValue) = "" then
        SQLCheck = "NULL"
    else
        if  datatype = 1 then
            SQLCheck = "'" & Replace(strValue,"'","''") & "'"
        else
            SQLCheck = strValue
        end if
    End If
End Function
budg1eMedlem sedan apr. 2005116 inlägg
#3

Tackar Lars!

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