MengMedlem sedan feb. 2003549 inlägg 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 Du får uppdatera fältvärdet så det är NULL när du tar bort det.
K@llenMedlem sedan mars 20032 667 inlägg sql = "UPDATE modtagelsesrapporter SET kasseretdato = null WHERE id = " & request.querystring("id")
MengMedlem sedan feb. 2003549 inlägg Jo men fan då måste jag ju göra en hel funktion för detta... buuhuu
MengMedlem sedan feb. 2003549 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
@ndersMedlem sedan juni 200032 969 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
MengMedlem sedan feb. 2003549 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 =)
MengMedlem sedan feb. 2003549 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
MengMedlem sedan feb. 2003549 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
@ndersMedlem sedan juni 200032 969 inlägg 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 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 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 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 Det är precis så jag menar! :D
Men; indentera din kod! Det kommer du att tjäna på.
MengMedlem sedan feb. 2003549 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
MengMedlem sedan feb. 2003549 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
@ndersMedlem sedan juni 200032 969 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
MengMedlem sedan feb. 2003549 inlägg Hur menar du med detta? indentering
@ndersMedlem sedan juni 200032 969 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?