webForumDet fria alternativet

Nullsträngar

ASPur ASP

5 svar · 212 visningar · startad av PlayerOne

Medlem sedan maj 200062 inlägg
Frågan#1

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

eller nåt sånt. Nån som vet??

Medlem sedan juni 2000373 inlägg
#2

Är det såhär du menar?

If Request.Form("id") = "" Then
   Request.Form("id") = "Null"
Else
End If

------------------
Mvh Rickard
www.ricki.nu

Medlem sedan dec. 19996 721 inlägg
#3

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

update tabell set kolumn=NULL where kolumn=''

Medlem sedan dec. 19998 577 inlägg
#4

Ricki, tankegången är rätt, dock några fel:

Reques.Form är en Read-only collection och kan inte ges värden genom ett "="-tecken...

Null är i sig ett värde D.V.S ett värde som inte finns!?

Så man skulle kunna skriva såhär:
If Request.Form("id") = "" Then
var = null
Else
var = Request.Form("id")
End If

Emission, du din ***... du skall då alltid komma lite före... :e

------------------
www.webeye.nu

[Redigerat av Vide den 20 jun 2000]

Medlem sedan dec. 19996 721 inlägg
#5

Haha! ;)

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.

Medlem sedan maj 200062 inlägg
#6

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

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