StevePMedlem sedan mars 2003751 inlägg
Jag har en tabell som ska uppdateras.
Alla fälten kan vara NULL i databasen. Men om man gör en update utan att fylla i nån av fälten så får jag
Microsoft OLE DB Provider for SQL Server error '80040e14'
Line 1: Incorrect syntax near ','.
SpPostListAction_Update '02/01/1902','mm222','10/10/2001',,'10/10/2003',67699
Som ni ser så är det 3:e sista Tomt.
Men det fältet får ju vara Null enligt databasen. Så varför klagar den och vad kan jag göra åt det?
@ndersMedlem sedan juni 200026 914 inlägg
Bara för att fältet tar emot null betyder det inte att du får utelämna värde helt. Du får helt enkelt slänga med värdet Null i SQL-frågan.
Förresten, du vet att SQL-forumet passar alldeles ypperligt när man har SQL-problem? ;)
StevePMedlem sedan mars 2003751 inlägg
Ah ok.
Jo det är jag medveten om men jag trodde jag behövde nåt IF STATEMENT för detta :)
Hur skulle jag slänga med värdet Null i SQL frågan då ?
Lika bra att jag frågar på här, annars blir det en onödig dubbelpost. Denna posten flyttas väl till SQL forumet.
@ndersMedlem sedan juni 200026 914 inlägg
SteveP skrev:
Denna posten flyttas väl till SQL forumet.
Jepp, den kommer flyttas. ;)
SpPostListAction_Update '02/01/1902','mm222','10/10/2001',[b]Null[/b],'10/10/2003',67699
Mvh
StevePMedlem sedan mars 2003751 inlägg
jo men jag måste väl ha nåt ifstatement så den fattar att den ska skriva in Null när request.form är tom?
Typ såhär
If Request.Form("Priority") = "" then VarPriority = "Null"
Fast detta kommer ju inte fungera nå bra på kolumner med datatypen "DATETIME" eftersom den kommer uppfatta "Null" som Varchar
@ndersMedlem sedan juni 200026 914 inlägg
Jepp. Det är vid sådana tillfällen man förbannar Microsoft för att IIF() inte är implementerat i VBScript.
@ndersMedlem sedan juni 200026 914 inlägg
Nej, den kommer inte uppfatta null som varchar. Null är null.
r: dvs, så länge som du skriver det som just null, utan apostrofer runt.
StevePMedlem sedan mars 2003751 inlägg
Så fick det bli.
Vissa klagade på "Null" och andra på Null så man fick variera lite beroende på datatyp... knasigt
If Request.Form("Priority") = "" then VarPriority = Null
@ndersMedlem sedan juni 200026 914 inlägg
Det borde faktiskt vara "Null", eftersom null är en sträng ända fram tills SQL Server ska tolka värdet, då ska det inte ha några strängliteraler (apostrofer alltså) runt sig.
StevePMedlem sedan mars 2003751 inlägg
Skriver jag
If Request.Form("DoneDate") = "" then VarDoneDate = Null
Så resulterar det i
SpPostListAction_Update '02/01/1902','Test','01/01/2003',2,'',67699
Alltså det blir bara helt tomt som innan, eftersom Null är inget värde alls.
Men skriver jag
If Request.Form("DoneDate") = "" then VarDoneDate = "Null"
Så resulterar det i
SpPostListAction_Update '02/01/1902','Test','01/01/2003',2,'Null',67699
Bara för att enkelfnuttarna hamnar runt NULL
Då försöker den ju konvertera till VarChar.
Hur blir man av med enkelfnuttarna runt.
Jag måste ju ha enkelfnuttar runt i SQL queryn, för det är DATETIME
@ndersMedlem sedan juni 200026 914 inlägg
Nej, du ska inte ha några enkelfnuttar. Bort med dem. Null är ett giltigt värde, och skall inte ha apostrofer runt sig. När det handlar om nullvärden spelar det ingen roll vad det är för datatyp på fältet.
StevePMedlem sedan mars 2003751 inlägg
Ja jag förstår det men hur får jag bort enkelfnuttarna.
Dom är ju där eftersom VarDoneDate är DATETIME och fyller man i ett datum så måste ju enkelfnuttarna finnas. Men skriver man inte i nåt så ska VarDoneDate = "Null"
Men då blir det ju 'Null' i queryn eftersom enkelfnuttarna ligger i Queryn som skickar med VarDoneDate
'" & VarDoneDate & "'
Så ligger den ju i Queryn.
Sätter jag den VarDoneDate = "Null" så kommer den ju ändå skriva ut 'Null' med enkelfnuttarna eftersom dom finns med i Queryn.
@ndersMedlem sedan juni 200026 914 inlägg
Då får du slänga med apostroferna från if-satsen.
If Request.Form("DoneDate") = "" then VarDoneDate = "Null" Else varDoneDate = "'" & Request.Form("DoneDate") & "'"
... och ta bort de ur koden där du skapar SQL-frågan.
StevePMedlem sedan mars 2003751 inlägg
Ok tack!
Trist att man måste gå den vägen.
LarsGMedlem sedan dec. 200012 465 inlägg