Hej, jag skulle på något sätt vilja konvertera en tom sträng till en nullsträng, dvs om nån hoppar över ett formulärfält på asp-sidan ska den konverteras till en nullsträng innan den läggs in i databasen. Typ
If Request.Form("id") = ""
Then konvertera till nullsträng
Nej. För det första kan man inte sätta värden på request.form, för det andra är en null-sträng inte en sträng med ordet "null" i. Det finns självklart många sätt att lösa det, men eftersom NULL måste sättas utan fnuttar så kan det enklaste (inte effektivt, dock) vara att köra
Problemet är bara det att även om man sätter variabeln till null så har man antagligen en hopbakning av en SQL-sats.
"...VALUES('" & var & "')"
vilket i bästa fall blir...
"...VALUES('')"
och då har man ändå stoppat en en tomsträng, inte en nullsträng. Med direktuppdatering, rs("kolumn")=null, funkar det, men det kan ju vara lite bökigt.
Självklart kan man i stället se till att alla strängar som inte ska vara null omsluts av fnuttar ( var="'" & request.form("hoppla") & "'" ), och använda ovanstående sätt, men det blir ännu bökigare.
Det bästa är att skapa en lösning där man inte är beroende av nullvärden.
Det var många intressanta svar.
Anledningen till att jag vill använda nullsträngar är att när man väljer att hoppa över att mata in datumfälten på min aspsid, skickas en tom sträng till min sqldatabas, där datumfältet har datatypen datetime. Sqldatabasen gör automatiskt om den tomma strängen till ett defaultvärde, i det här fallet 1/1/1900. Jag skulle dock vilja att värdet blir tomt eller null. Kanske går det att ställa in i SQLdb?
När jag ändå håller på undrar jag om nån vet hur man snyggar till presentationen an datumen på asp-sidan. Dvs så att 1/1/2000 blir tex 2000-01-01
256 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a