Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.misc -> OIP-04153: Non-blocking operation in progress
I am having a hard time to get async commands to work (properly) using
Oracle Objects for OLE. I am submitting a sample of an attempt to issue two
command in a row. The first command is executed and the loop indicates that
poSQLStmt.NonBlockingState is called 3 times before it returns 0
(ORASQL_SUCCESS).
I then issue another command (actually the same one) and one the second
oraDB.CreateSql(psSQL, ORASQL_NONBLK) command I receive a runtime
(OIP-04153: Non-blocking operation in progress) error. err.Number = 440.
Is it not possible to issue a set of commands on a single connection one after another. The code shown is just a sample. The reason for doing this is to allow the user to issue other commands on other connections and have the application deal with checking when required, thus allowing the application to do more than one thing at a time.
Sample Code:
Dim oraSess As OraSessionClass
Dim cnt As Long
Dim stat As Long
Dim oraDB As OraDatabase
Dim poSQLStmt As OraSqlStmt
Dim psSQL As String
Set oraSess = CreateObject("OracleInProcServer.XOraSession") Set oraDB = oraSess.OpenDatabase("orcl", "demo_debug/demo_debug", 0)
psSQL = "update actions set status = status;" Set poSQLStmt = oraDB.CreateSql(psSQL, ORASQL_NONBLK)
stat = poSQLStmt.NonBlockingState
While stat = ORASQL_STILL_EXECUTING
cnt = cnt + 1
Debug.Print cnt
stat = poSQLStmt.NonBlockingState
Wend
Set poSQLStmt = oraDB.CreateSql(psSQL, ORASQL_NONBLK)
stat = poSQLStmt.NonBlockingState
While stat = ORASQL_STILL_EXECUTING
cnt = cnt + 1
Debug.Print cnt
stat = poSQLStmt.NonBlockingState
Wend
MsgBox "Async Count = " & Format(cnt) & " RecordCount = " & Format(poSQLStmt.RecordCount)
oraDB.Close
Set oraSess = Nothing
Received on Thu Aug 01 2002 - 20:55:40 CDT
![]() |
![]() |