webForumDet fria alternativet

SQL-problem

6 svar · 232 visningar · startad av Sebbe

SebbeMedlem sedan jan. 20031 603 inlägg
#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. :)

LarsGMedlem sedan dec. 200012 465 inlägg
#2

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

SebbeMedlem sedan jan. 20031 603 inlägg
#3

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

solbulleMedlem sedan mars 20014 998 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?

SebbeMedlem sedan jan. 20031 603 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")
solbulleMedlem sedan mars 20014 998 inlägg
#6

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

SebbeMedlem sedan jan. 20031 603 inlägg
#7

solbulle skrev:

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

Visste jag väl redan? ;)

Genererad på 367 ms · cache AV · v20260730165559-full.f96bc7eb