Jeg tilgår en MS SQL7 database via ADO fra en ASP-side.
Jeg har på denne side et par UPDATE/INSERT (UI) statements, som jeg gerne
vil håndtere som en transcation. Selve disse to statements er
"sammenkogt" af en række SELECT-statements, der sammen giver mig værdier,
som jeg så bruger i mine UI-statements.
Problemet opstår, når jeg har samlet data sammen til mine UI-statements.
Herefter vil jeg gerne begynde en transaction.
Det ser nogenlunde således ud:
'############### CODE BEGIN ###############
set adoCon = createobject("ADODB.Connection")
adoCon.Open "someDSN"
adoCon.begintrans
strSQL2 = "UPDATE Table Set field1 = " & GetParm1(someId)
strSQL3 = "INSERT INTO Table2 (field1,field2) VALUES (" & getParm2(someId) & ",3)"
adoCon.Committrans
function GetParm1(id)
t1_strSQL = "SELECT Field1 from Table2 WHERE id = " & id
oRec1 = adoCon.execute(t1_strSQL)
getParm1 = oRec1("field1")
set oRec1 = nothing
end function
function getParm2(id)
t2_strSQL = "SELECT Field2 FROM Table4 WHERE id = " & id
oRec2 = adoCon.execute(t2_strSQL)
getParm2 = oRec2("Field2)
set oRec2 = nothing
end function
'############### CODE END ###############
Men det får jeg ikke lov til. Fejlen jeg får er:
"Transaction cannot start while in firehose mode"
Hvis jeg derimod opretter et helt nyt ADO-object og smider min transaction
igennem dette, så virker det uden problemer.
Er det behaviour by design ... eller kan jeg undgå at oprette to ADO-
forbindelser fra min side ?
--
Jesper Stocholm
http://stocholm.dk (online again soon)
Exercise you right to free speach - use encryption to secure your communication