webForumDet fria alternativet

not null

25 svar · 697 visningar · startad av Meng

MengMedlem sedan feb. 2003549 inlägg
#1

Hur kan jag skriva detta på ett annat sätt?

	SQL = "SELECT * FROM modtagelsesrapporter WHERE sletdato is null AND [B]kasseretdato is not null[/B] ORDER BY ID ASC"

För när kasseretdato har varit använt en gång och man sen tar bort det igen så är den fortfarande "not null" kan man inte skriva kasseretdato <> "" eller göra så fältet registreras som oanvänt?

@ndersMedlem sedan juni 200032 969 inlägg
#2

Du får uppdatera fältvärdet så det är NULL när du tar bort det.

MengMedlem sedan feb. 2003549 inlägg
#3

hur gör man detta?

K@llenMedlem sedan mars 20032 667 inlägg
#4
sql = "UPDATE modtagelsesrapporter SET kasseretdato = null WHERE id = " & request.querystring("id")
MengMedlem sedan feb. 2003549 inlägg
#5

Jo men fan då måste jag ju göra en hel funktion för detta... buuhuu

MengMedlem sedan feb. 2003549 inlägg
#6

Detta funkar iaf inte, det blir inte "nullad" iaf

If Request.Querystring("action") = "nystatus" Then

rep1        		= Fixa(Request.Form("rep1"))
rep2        		= Fixa(Request.Form("rep2"))
If Request.Form("kasseretdato") <> "" Then
kasseretdato        	= Fixa(Request.Form("kasseretdato"))
Else
kasseretdato        	= null
End If

   Andretdato		= now()

Conn.execute("Update modtagelsesrapporter Set rep1='" & rep1 & "', rep2='" & rep2 & "', kasseretdato='" & kasseretdato & "', Andretdato='" & Andretdato & "' Where id = "& Request.Querystring("id")),,128
   Response.Redirect "mrapporter_inlagt.asp?do=nystatus&set="& Request.Querystring("set") &"&id="& Request.Querystring("id")
End If
@ndersMedlem sedan juni 200032 969 inlägg
#7

Null i ASP är inte samma sak som Null i SQL.

Du får inte ha apostrofer runt ordet NULL i din SQL-fråga. Exempel:

UPDATE tbl SET fld = NULL
MengMedlem sedan feb. 2003549 inlägg
#8

Men vadå då får jag väl göra en if sats för Hela databas uppdateringen?. meck meck meck, jag provar =)

MengMedlem sedan feb. 2003549 inlägg
#9

Så här ?

If kasseretdato = "" then
Conn.execute("Update modtagelsesrapporter Set rep1='" & rep1 & "', rep2='" & rep2 & "', kasseretdato = null, Andretdato='" & Andretdato & "' Where id = "& Request.Querystring("id")),,128
Else
Conn.execute("Update modtagelsesrapporter Set rep1='" & rep1 & "', rep2='" & rep2 & "', kasseretdato='" & kasseretdato & "', Andretdato='" & Andretdato & "' Where id = "& Request.Querystring("id")),,128
End If
   Response.Redirect "mrapporter_inlagt.asp?do=nystatus&set="& Request.Querystring("set") &"&id="& Request.Querystring("id")
End If
MengMedlem sedan feb. 2003549 inlägg
#10

Alltså så här jobbigt för alla 3 fält?

If kasseretdato = "" then
Conn.execute("Update modtagelsesrapporter Set rep1='" & rep1 & "', rep2='" & rep2 & "', kasseretdato = null, Andretdato='" & Andretdato & "' Where id = "& Request.Querystring("id")),,128
ElseIf rep1 = "" then
Conn.execute("Update modtagelsesrapporter Set rep1 = null, rep2='" & rep2 & "', kasseretdato='" & kasseretdato & "', Andretdato='" & Andretdato & "' Where id = "& Request.Querystring("id")),,128
ElseIf rep2 = "" then
Conn.execute("Update modtagelsesrapporter Set rep1='" & rep1 & "', rep2 = null, kasseretdato='" & kasseretdato & "', Andretdato='" & Andretdato & "' Where id = "& Request.Querystring("id")),,128
ElseIf kasseretdato = "" AND rep1 = "" then
Conn.execute("Update modtagelsesrapporter Set rep1 = null, rep2='" & rep2 & "', kasseretdato = null, Andretdato='" & Andretdato & "' Where id = "& Request.Querystring("id")),,128
ElseIf kasseretdato = "" AND rep1 = "" AND rep2 = "" then
Conn.execute("Update modtagelsesrapporter Set rep1 = null, rep2 = null, kasseretdato = null, Andretdato='" & Andretdato & "' Where id = "& Request.Querystring("id")),,128
If rep1 = "" AND rep2 = "" then
Conn.execute("Update modtagelsesrapporter Set rep1 = null, rep2 = null, kasseretdato='" & kasseretdato & "', Andretdato='" & Andretdato & "' Where id = "& Request.Querystring("id")),,128
Else
Conn.execute("Update modtagelsesrapporter Set rep1='" & rep1 & "', rep2='" & rep2 & "', kasseretdato='" & kasseretdato & "', Andretdato='" & Andretdato & "' Where id = "& Request.Querystring("id")),,128
End If
@ndersMedlem sedan juni 200032 969 inlägg
#11

Nej, du kan göra det mycket enklare. Det räcker med en SQL-fråga, och tre ifsatser.

MengMedlem sedan feb. 2003549 inlägg
#12

jo men hur gör man när man skal skriva en if stat i sql frågan?

@ndersMedlem sedan juni 200032 969 inlägg
#13

Varför ska du skriva en if-sats i SQL-frågan?

Sätt if-satserna ovanför, och i SQL-frågan kastar du in värdena du satt i dina if-satser.

MengMedlem sedan feb. 2003549 inlägg
#14

Jo jag förstår men jag vet bara inte helt hur man utformar dessa så det funkar men det är väl i denna stilen?

If kasseretdato = "" Then
kass = "null"
Else
kass = "'" & kasseretdato & "'"
End If
@ndersMedlem sedan juni 200032 969 inlägg
#15

Det är precis så jag menar! :D

Men; indentera din kod! Det kommer du att tjäna på.

MengMedlem sedan feb. 2003549 inlägg
#16

Och med det menar du?

Jag kommer ingenstans, fattar inte hur jag tar bort fnuttarna utan att paja funktionen.

rep1        		= Fixa(Request.Form("rep1"))
rep2        		= Fixa(Request.Form("rep2"))
kasseretdato 		= Fixa(Request.Form("kasseretdato"))

   Andretdato		= now()

If kasseretdato = "" Then
kd = null
Else
kd = "'" & kasseretdato & "'"
End If

Conn.execute("Update modtagelsesrapporter Set rep1='" & rep1 & "', rep2='" & rep2 & "', kasseretdato = '" & kd & "', Andretdato='" & Andretdato & "' Where id = "& Request.Querystring("id")),,128
MengMedlem sedan feb. 2003549 inlägg
#17

AAAAAAAAAAAAAAHHHHAAAAAAAAAAAAAAAAAA :birp :birp

Nu kom jag på de hehe

rep1        		= Fixa(Request.Form("rep1"))
rep2        		= Fixa(Request.Form("rep2"))
kasseretdato 		= Fixa(Request.Form("kasseretdato"))

   Andretdato		= now()

If rep1 = "" Then
r1 = "rep1 = null"
Else
r1 = "rep1 = '" & rep1 & "'"
End If

If rep2 = "" Then
r2 = "rep2 = null"
Else
r2 = "rep2 = '" & rep2 & "'"
End If

If kasseretdato = "" Then
kd = "kasseretdato = null"
Else
kd = "kasseretdato = '" & kasseretdato & "'"
End If

Conn.execute("Update modtagelsesrapporter Set  "& r1 &" , "& r2 &" , "& kd &" , Andretdato='" & Andretdato & "' Where id = "& Request.Querystring("id")),,128

Det är väl fullt dugligt @nders? :e

@ndersMedlem sedan juni 200032 969 inlägg
#18

Det där ser finfint ut, men jag efterlyser fortfarande indentering, så du (och andra) får lättare att följa din kod.

mvh

MengMedlem sedan feb. 2003549 inlägg
#19

Hur menar du med detta? indentering

@ndersMedlem sedan juni 200032 969 inlägg
#20

Exempel:

If blah = "woo" then
     ' Gör något
     For i = 0 to 10
         ' gör något
         Response.write i
     Next
Else
     Response.write "foo"
End if
If blah = "woo" then
' Gör något
For i = 0 to 10
' gör något
Response.write i
Next
Else
Response.write "foo"
End if

Vilket av kodexemplen är lättast att följa?

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