webForumDet fria alternativet
Logga in / Bli medlem

SQL-problem

ASP

6 svar · 232 visningar · startad av Sebbe

Medlem sedan jan. 20032 285 inlägg
Trådstart#1

Var inte säker på om jag skulle lägga den här frågan i ASP eller SQL-forumet, men jag lägger den här.

Jag kör den här koden:

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("serie.mdb")
strSQL = "INSERT INTO matcher (omg, datum, hemmalag, bortalag, hemmamal, bortamal) VALUES (" & intOmg & ", #" & dtmDatum & "#, '" & strHemmalag & "', '" & strBortalag & "', " & intHemmamal & ", " & intBortamal & ")"
objConn.Execute(strSQL)

If CInt(intHemmamal) > CInt(intBortamal) Then
  strSQL = "UPDATE lag SET vunna = vunna + 1 WHERE namn = '" & strHemmalag & "'"
  objConn.Execute(strSQL)
  strSQL = "UPDATE lag SET förlorade = förlorade + 1 WHERE namn = '" & strBortalag & "'"
ElseIf CInt(intHemmalag) < CInt(intBortamal) Then
  strSQL = "UPDATE lag SET vunna = vunna + 1 WHERE namn = '" & strBortalag & "'"
  objConn.Execute(strSQL)
  strSQL = "UPDATE lag SET förlorade = förlorade + 1 WHERE namn = '" & strHemmalag & "'"
ElseIf CInt(intHemmlag) = CInt(intBortalag) Then
  strSQL = "UPDATE lag SET oavgjorda = oavgjorda + 1 WHERE namn = '" & strHemmalag & "'"
  objConn.Execute(strSQL)
  strSQL = "UPDATE lag SET oavgjorda = oavgjorda + 1 WHERE namn = '" & strBortalag & "'"
End If

objConn.Execute(strSQL)

strSQL = "UPDATE lag SET gjorda = gjorda + " & intHemmamal & ", inslappta = inslappta + " & intBortamal & " WHERE namn = '" & strHemmalag & "'"
objConn.Execute(strSQL)
strSQL = "UPDATE lag SET gjorda = gjorda + " & intBortamal & ", inslappta = inslappta + " & intHemmamal & " WHERE namn = '" & strBortalag & "'"
objConn.Execute(strSQL)

objConn.Close : Set objConn = Nothing
Response.Redirect("default.asp?do=schema")

Problemet är det att ingen av SQL-satserna efter INSERT-satsen verkar köras. Det är som om Response.Redirecten körs direkt efter den. Ändå har jag testat att skriva ut en av de frågorna för att de om den koden körs, och frågan skrivs ändå ut! Jag testade även att skapa ett helt nytt connection-object till UPDATE-frågorna, men ingen skillnad.
Hoppas att någon fattar vad jag menar i alla fall. :)

Medlem sedan dec. 200012 464 inlägg
#2

ElseIf CInt(intHemmalag) -- stämmer väl inte

Medlem sedan jan. 20032 285 inlägg
#3

/red Läste fel. Tack LarsG, ska testa om dte funkar. :)

Medlem sedan mars 20015 287 inlägg
#4

Vad händer då om du skriver ut ALLA sqlsatser, samt bortkommenterar din redirect?
Blir det rätt satser som skrivs ut med tanke på vad intHemmamal mm innehåller?

Medlem sedan jan. 20032 285 inlägg
#5

Solbulle: Ja, de visar rätt, allihopa.

Nu ser koden ut såhär, fortfarande samma problem. Alla SQL-exekveringar efter INSERT-satsen körs inte.

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("serie.mdb")
strSQL = "INSERT INTO matcher (omg, datum, hemmalag, bortalag, hemmamal, bortamal) VALUES (" & intOmg & ", #" & dtmDatum & "#, '" & strHemmalag & "', '" & strBortalag & "', " & intHemmamal & ", " & intBortamal & ")"
objConn.Execute(strSQL)

If CInt(intHemmamal) > CInt(intBortamal) Then
  strSQL = "UPDATE lag SET vunna = vunna + 1 WHERE namn = '" & strHemmalag & "'"
  objConn.Execute(strSQL)
  strSQL = "UPDATE lag SET förlorade = förlorade + 1 WHERE namn = '" & strBortalag & "'"
ElseIf CInt(intHemmamal) < CInt(intBortamal) Then
  strSQL = "UPDATE lag SET vunna = vunna + 1 WHERE namn = '" & strBortalag & "'"
  objConn.Execute(strSQL)
  strSQL = "UPDATE lag SET förlorade = förlorade + 1 WHERE namn = '" & strHemmalag & "'"
ElseIf CInt(intHemmamal) = CInt(intBortamal) Then
  strSQL = "UPDATE lag SET oavgjorda = oavgjorda + 1 WHERE namn = '" & strHemmalag & "'"
  objConn.Execute(strSQL)
  strSQL = "UPDATE lag SET oavgjorda = oavgjorda + 1 WHERE namn = '" & strBortalag & "'"
End If

objConn.Execute(strSQL)

strSQL = "UPDATE lag SET gjorda = gjorda + " & intHemmamal & ", inslappta = inslappta + " & intBortamal & " WHERE namn = '" & strHemmalag & "'"
objConn.Execute(strSQL)
strSQL = "UPDATE lag SET gjorda = gjorda + " & intBortamal & ", inslappta = inslappta + " & intHemmamal & " WHERE namn = '" & strBortalag & "'"
objConn.Execute(strSQL)

objConn.Close : Set objConn = Nothing
Response.Redirect("default.asp?do=schema")
Medlem sedan mars 20015 287 inlägg
#6

Sätt 0 (noll) som standardvärde i dina kolumner. ;)

Medlem sedan jan. 20032 285 inlägg
#7

solbulle skrev:

Sätt 0 (noll) som standardvärde i dina kolumner. ;)

Visste jag väl redan? ;)

380 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
122 ms — deklarationer (db)
123 ms — hämta statistik (db)
130 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)