Just nu i M3-nätverket
Jump to content

Your transaction was deadlocked


J Sundberg

Recommended Posts

Tjena!

 

Jag får emellanåt detta felmeddelande när jag försöker lista upp ett RS ur min MSSQL-databas. Jag har byggt allt kring ASP.

 

 

Microsoft OLE DB Provider for SQL Server error '80004005' . Your transaction (process ID #11) was deadlocked with another process and has been chosen as the deadlock victim. Rerun your transaction.

 

Jag fattar ju vad problemet är men undrar om det finns ett enkelt och bra sätt att få reda på att just detta fel har uppstått och helt enkelt köra om frågan. Jag vill ju helst inte ha en ren on error resume next-grej påkopplad.

 

Sundberg

 

Link to comment
Share on other sites

Det finns inget annat sätt att fånga upp fel utom att köra med On Error Resume Next och fånga upp felen.

 

Du måste också försöka ta reda på vilket exakt felnummer detta fel orsakar, antingen genom att du skriver ut det eller söker på MS sajt.

 

Koden skulle kunna se ut ungefär så här:

 

[color="#0000ff"]On Error Resume[/color] [color="#0000ff"]Next[/color]

iRecovery = 3
[color="#0000ff"]Do[/color]
Err.Clear
rs.Open sSQL, conn, 1, 3
iRecovery = iRecovery - 1
[color="#0000ff"]Loop[/color] [color="#0000ff"]While[/color] iRecovery > 0 [color="#0000ff"]And[/color] ( Err.Number = -2147217871 )

[color="#0000ff"]If[/color] Err.Number <> 0 [color="#0000ff"]Then[/color]
[b]Response[/b].Write [GRÅ]"Error: "[/GRÅ] & Err.Description 
[b]Response[/b].[color="#0000ff"]End[/color]
[color="#0000ff"]End[/color] [color="#0000ff"]If[/color]

 

Saxat från ett av mina egna scripts, använder som du ser ett recordset objekt och felnummeret är i detta fall för time or deadlock error vid koppling till databasen, kanske är det samma felnummer som du behöver till och med.

 

[inlägget ändrat 2005-01-11 16:39:14 av Meme]

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...