従来のaspアプリケーションで次のエラーが発生します。
Microsoft OLE DB ProviderforODBCドライバーエラー「80004005」
トランザクションは、このカーソルタイプで複数のレコードセットを持つことはできません。カーソルの種類を変更するか、トランザクションをコミットするか、レコードセットの1つを閉じます。
私はコードをOracleからSQLServer2008に移行する作業を行っていますが、これはアプリケーション全体を通して、あちこちで見られる問題です。
修正が見つからないようです。
このコードブロックのこの特定のケース:(選択を変更して短くしました)
Set MyConn = Server.CreateObject("ADODB.Connection")
Call OpenORPSConnect(MyConn)
ql = "Select username from mytable"
set rs = MyConn.Execute(sql)
if not rs.EOF then username = rs(0)
if username = "" then username = theUser
rs.close()
set rs = nothing
MyConn.BeginTrans()
sql = "Select someReport from MyTable"
set rs = MyConn.Execute(sql)
do while not rs.EOF
TIMESTAMP = rs("TIMESTAMP")
rev = rs("REV")
select case whatChange
case "Target date"
sql = "Insert into " & caJustTable & _
" (TEXT, TIMESTAMP, CURRENTFLAG)" & _
" Values ( Text& "','" & COPY_TS & "', 'Y')""
MyConn.Execute(sql)
end select
sql = "update table, set this to that"
MyConn.Execute(sql) <-------- error happens here sometimes....
end if
rs.movenext
loop
rs.close()
set rs = nothing