Meng Medlem sedan feb. 2003 549 inlägg Frågan 13 sep. 2004 13:50 #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?
@nders Medlem sedan juni 2000 32 967 inlägg Du får uppdatera fältvärdet så det är NULL när du tar bort det.
K K@llen Medlem sedan mars 2003 2 667 inlägg sql = "UPDATE modtagelsesrapporter SET kasseretdato = null WHERE id = " & request.querystring("id")
Meng Medlem sedan feb. 2003 549 inlägg Jo men fan då måste jag ju göra en hel funktion för detta... buuhuu
Meng Medlem sedan feb. 2003 549 inlägg 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
@nders Medlem sedan juni 2000 32 967 inlägg 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
Meng Medlem sedan feb. 2003 549 inlägg Men vadå då får jag väl göra en if sats för Hela databas uppdateringen?. meck meck meck, jag provar =)
Meng Medlem sedan feb. 2003 549 inlägg 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
Meng Medlem sedan feb. 2003 549 inlägg 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
@nders Medlem sedan juni 2000 32 967 inlägg Nej, du kan göra det mycket enklare. Det räcker med en SQL-fråga, och tre ifsatser.
Meng Medlem sedan feb. 2003 549 inlägg jo men hur gör man när man skal skriva en if stat i sql frågan?
@nders Medlem sedan juni 2000 32 967 inlägg 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.
Meng Medlem sedan feb. 2003 549 inlägg 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
@nders Medlem sedan juni 2000 32 967 inlägg Det är precis så jag menar! :D
Men; indentera din kod! Det kommer du att tjäna på.
Meng Medlem sedan feb. 2003 549 inlägg 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
Meng Medlem sedan feb. 2003 549 inlägg 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
@nders Medlem sedan juni 2000 32 967 inlägg 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
Meng Medlem sedan feb. 2003 549 inlägg Hur menar du med detta? indentering
@nders Medlem sedan juni 2000 32 967 inlägg 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?