在VB.NET开发ORACLE,用OO4O连接ORACLE。
当使用完记录集时,用RS.CLOSE RS=NOTHING 方法销毁记录集根本就不好使。记录集会一直被挂起。所以很容易报ORA-01000 这个错。
但是在VB.6中RS.CLOSE set RS=NOTHING 却好用。为什么?
我又用ADO.NET作了实验,正常。VB.NET下的代码入下,我在循环中打开多个记录集,每次又都 RS.CLOSE RS=NOTHING 。但是这个小例子会报ORA-01000这个错。Public gOraSession As OracleInProcServer.OraSession
Public gOraDb As OracleInProcServer.OraDatabase
Public gsOraDSN as string
Public gsOraUID as string
Public gsOraPWD as string
'****************************************************
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i As Long
Dim rs As OracleInProcServer.OraDynaset
Dim str1 As String gsOraDSN ="DB"
gsOraUID ="UserId"
gsOraPWD ="PassWord" S_ConnectOra
str1 = "select * from dual" For i = 1 To 1000 rs = gOraDb.CreateDynaset(str1, ORADYN_DEFAULT)
rs.Close()
rs = Nothing Next
End Sub'********************************************Public Function S_ConnectOra() As Boolean '●ORACLE接続 Dim Ret As Integer
S_ConnectOra = False
On Error GoTo Err_ConnectOra gOraSession = CreateObject("OracleInProcServer.XOraSession")
gOraDb = gOraSession.OpenDatabase(gsOraDSN, gsOraUID & "/" & gsOraPWD, ORADB_DEFAULT)
S_ConnectOra = True Exit FunctionErr_ConnectOra:MsgBox("ERROR")End Function
当使用完记录集时,用RS.CLOSE RS=NOTHING 方法销毁记录集根本就不好使。记录集会一直被挂起。所以很容易报ORA-01000 这个错。
但是在VB.6中RS.CLOSE set RS=NOTHING 却好用。为什么?
我又用ADO.NET作了实验,正常。VB.NET下的代码入下,我在循环中打开多个记录集,每次又都 RS.CLOSE RS=NOTHING 。但是这个小例子会报ORA-01000这个错。Public gOraSession As OracleInProcServer.OraSession
Public gOraDb As OracleInProcServer.OraDatabase
Public gsOraDSN as string
Public gsOraUID as string
Public gsOraPWD as string
'****************************************************
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i As Long
Dim rs As OracleInProcServer.OraDynaset
Dim str1 As String gsOraDSN ="DB"
gsOraUID ="UserId"
gsOraPWD ="PassWord" S_ConnectOra
str1 = "select * from dual" For i = 1 To 1000 rs = gOraDb.CreateDynaset(str1, ORADYN_DEFAULT)
rs.Close()
rs = Nothing Next
End Sub'********************************************Public Function S_ConnectOra() As Boolean '●ORACLE接続 Dim Ret As Integer
S_ConnectOra = False
On Error GoTo Err_ConnectOra gOraSession = CreateObject("OracleInProcServer.XOraSession")
gOraDb = gOraSession.OpenDatabase(gsOraDSN, gsOraUID & "/" & gsOraPWD, ORADB_DEFAULT)
S_ConnectOra = True Exit FunctionErr_ConnectOra:MsgBox("ERROR")End Function
set rs=nothing 相当于 VB.net中的 rs=nothing
这事一样的
我记得你昨天回答了我的一个PLSQL的问题,谢谢你呀。
这个问题也请你关注一下呀