webForumDet fria alternativet

Fel i en transaktion

ASP

4 svar · 287 visningar · startad av kristoffer

Medlem sedan juni 20001 257 inlägg
Frågan#1

Jag kör ungefär följande:

Set conn = Server.CreateObject("ADODB.Connection")
conn.Open getDb()
conn.BeginTrans
on error resume next

strSQL = "INSERT INTO foo (a) VALUES ('b')"
conn.Execute strSQL,,128

strSQL = "SELECT @@IDENTITY"
If err.number = 0 Then 
    Set rs = conn.Execute(strSQL)
    id = rs(0)
    rs.Close
    Set rs = nothing
End If

'Här är err.number = 0

strSQL = "INSERT INTO bar (c) VALUES ('d')"
If err.number = 0 Then
    conn.Execute strSQL,,128
End If

[b]'Här är err.number = 424[/b]

If err.number <> 0 Then
    conn.RollbackTrans
    on error goto 0
Else
    conn.CommitTrans
    End If

conn.Close
Set conn = nothing

När jag kommit till den markerade raden är err.Number = 424 (dvs err.Description = "Object required"). Varför?

Medlem sedan dec. 20003 887 inlägg
#2

/red Fel! :r

Medlem sedan dec. 20003 887 inlägg
#3

/red Fel! :r

Dubbelklick #¤%&#¤%&#¤

Jag skulle ju ställa frågan: Vilken är den markerade raden? Men mina triggerhappy fingerjäklar ställde till det en aning...

Medlem sedan juni 20001 257 inlägg
#4

Ingen som vet?

Medlem sedan juni 20022 599 inlägg
#5

Vet och vet .. Nånstans så använder ju tydligen ett objekt som redan är bortplockat eller aldrig skapat (Object required). "rs" är ju en naturlig gissning, men eftersom koden inte är original utan "ungefär" så går det ju inte att svara (om man inte är väldigt telepatisk).

267 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)