2016-08-31 10 views
0

У меня есть приложение VB6, в котором я беру данные из базы данных. У меня возникла проблема при закрытии созданного сеанса.VB6 CreateObject ("OracleInProcServer.XOraSession") не удалось закрыть сеанс

Похоже, сессия сохраняется даже после того, как я установил объект сеанса на Nothing. Похоже, что он закрывается только при закрытии приложения.

Я использую следующий запрос, чтобы проверить сеанс в базе данных.

SELECT * FROM v$session where terminal='VirtualMachineName'; 

Ниже приведен код,

Dim pCounter As Long, strLoadSQL As String 
Dim objCursor As OraDynaset 
Dim tmpDBSessobj As OracleInProcServer.OraSession 
Dim tmpDBClientobj As OracleInProcServer.OraDatabase 
Dim objresetGI As GameInfo 

On Error GoTo ErrorHandler 

Set tmpDBSessobj = CreateObject("OracleInProcServer.XOraSession") 
Set tmpDBClientobj = tmpDBSessobj.OpenDatabase(strDBServiceName, strDBUsernamePassword, ORADB_ORAMODE) 

'set autocommit false --- 
tmpDBClientobj.AutoCommit = False 

'set params 
Do Until tmpDBClientobj.Parameters.Count = 0 
    For pCounter = 0 To tmpDBClientobj.Parameters.Count - 1 
     tmpDBClientobj.Parameters.Remove pCounter 
    Next 
Loop 
'bind 
tmpDBClientobj.Parameters.Add "ocursor", Nothing, ORAPARM_OUTPUT 
tmpDBClientobj.Parameters(0).serverType = ORATYPE_CURSOR 

'declare proc signature 
strLoadSQL = "begin resetpackage.getresetID(:ocursor); end;" 

'reset this game 
tmpDBClientobj.ExecuteSQL (strLoadSQL) 
Set objCursor = tmpDBClientobj.Parameters(0).Value 

'load the list box 
If objCursor.RecordCount > 0 Then 
    argscollection.Clear 
    objCursor.MoveFirst 
    Do Until objCursor.EOF 
     objresetGI.strGameNo = objCursor.fields(0).Value 
     objresetGI.strAction = objCursor.fields(1).Value 
     objresetGI.strProcessInd = objCursor.fields(2).Value 
     argscollection.Add objresetGI, objCursor.fields(0).Value 
    objCursor.MoveNext 
    Loop 
End If 

Set objCursor = Nothing 
tmpDBClientobj.Close 
Set tmpDBClientobj = Nothing 
Set tmpDBSessobj = Nothing 

Любая помощь в этой связи будут оценены.

ответ

0

objCursor должен предоставить вам возможность использовать close, а не ничего - objCursor.Close

 Смежные вопросы

  • Нет связанных вопросов^_^