Option Explicit
'ORACLE对象定义
Public OraSession As Object ' Oracle OraSession对象
Public OraDB As Object ' Oracle OraDataBase对象
Private fOraSess As Boolean ' Session设置标签
Private fOraDB As Boolean ' DataBase Open设置标签
' <测试用的Form文件>
Private Sub Form_Load()
'显示"连接中…"信息窗口
Load frmLogin
FrmLogin.Show
DoEvents
'调用ORACLE连接函数
If Ora_Open() = False Then
MsgBox "连接ORACLE失败。"
Else
'调用系统时间获得函数
Ora_GetDate()
End If
'放弃"连接中…"信息窗口
Unload frmLogin
End Sub
Private Sub Form_Unload(Cancel As Integer)
'调用ORACLE释放函数
If Ora_Close() = False Then
MsgBox "释放ORACLE连接失败。"
End If
End Sub
If fOraSess = False Then
'生成Session对象
Set OseOraSess = CreateObject("OracleInProcServer.XOraSess")
fOraSess = True
'ORACLE 数据库的Longin
Set OdbOraDB = OseOraSess.OpenDatabase("TZCE", "SCOTT/TIGER", 标ORADB_DEFAULT)
fOraDB = True
End If
Ora_Open_Exit:
Ora_Open = True
Screen.MousePointer = vbDefault
Exit Function
Ora_Open_Err:
Screen.MousePointer = vbDefault
'出错处理
If OraSess.LastServerErr = 0 Then
If OraDB.LastServerErr = 0 Then
'VB出错
pstrErr = Error(Err.Number)
Else
'数据库出错
pstrErr = OraDB.LastServerErrText
OraDB.LastServerErrReset
End If
Else
'Session出错
pstrErr = OraSess.LastServerErrText
OraSess.LastServerErrReset
End If
'错误显示
MsgBox pstrErr, vbOKOnly, "Ora_Open"
On Error Resume Next
End Function
' 名称 : Ora_Close
' 功能 : 关闭数据库
' 参数 : 没有
' 返回值 : True(正常) , False(异常)
Public Function Ora_Close() As Boolean
On Error GoTo Ora_Close_Err
Dim pstrErr As String
Ora_Close = False
If fOraDB = True Then
'关闭数据库
OraDB.Close
'解除OraDataBase对象
Set OraDB = Nothing
End If
If fOraSess = True Then
'解除OraSession对象
Set OraSess = Nothing
End If
ExitHandler:
Ora_Close = True
Exit Function
Ora_Close_Err:
'出错处理(和Ora_Open出错处理类似,略)
End Function
Option Explicit
'ORACLE对象定义
Public OraSession As Object ' Oracle OraSession对象
Public OraDB As Object ' Oracle OraDataBase对象
Private fOraSess As Boolean ' Session设置标签
Private fOraDB As Boolean ' DataBase Open设置标签
' <测试用的Form文件>
Private Sub Form_Load()
'显示"连接中…"信息窗口
Load frmLogin
FrmLogin.Show
DoEvents
'调用ORACLE连接函数
If Ora_Open() = False Then
MsgBox "连接ORACLE失败。"
Else
'调用系统时间获得函数
Ora_GetDate()
End If
'放弃"连接中…"信息窗口
Unload frmLogin
End Sub
Private Sub Form_Unload(Cancel As Integer)
'调用ORACLE释放函数
If Ora_Close() = False Then
MsgBox "释放ORACLE连接失败。"
End If
End Sub
If fOraSess = False Then
'生成Session对象
Set OseOraSess = CreateObject("OracleInProcServer.XOraSess")
fOraSess = True
'ORACLE 数据库的Longin
Set OdbOraDB = OseOraSess.OpenDatabase("TZCE", "SCOTT/TIGER", 标ORADB_DEFAULT)
fOraDB = True
End If
Ora_Open_Exit:
Ora_Open = True
Screen.MousePointer = vbDefault
Exit Function
Ora_Open_Err:
Screen.MousePointer = vbDefault
'出错处理
If OraSess.LastServerErr = 0 Then
If OraDB.LastServerErr = 0 Then
'VB出错
pstrErr = Error(Err.Number)
Else
'数据库出错
pstrErr = OraDB.LastServerErrText
OraDB.LastServerErrReset
End If
Else
'Session出错
pstrErr = OraSess.LastServerErrText
OraSess.LastServerErrReset
End If
'错误显示
MsgBox pstrErr, vbOKOnly, "Ora_Open"
On Error Resume Next
End Function
' 名称 : Ora_Close
' 功能 : 关闭数据库
' 参数 : 没有
' 返回值 : True(正常) , False(异常)
Public Function Ora_Close() As Boolean
On Error GoTo Ora_Close_Err
Dim pstrErr As String
Ora_Close = False
If fOraDB = True Then
'关闭数据库
OraDB.Close
'解除OraDataBase对象
Set OraDB = Nothing
End If
If fOraSess = True Then
'解除OraSession对象
Set OraSess = Nothing
End If
ExitHandler:
Ora_Close = True
Exit Function
Ora_Close_Err:
'出错处理(和Ora_Open出错处理类似,略)
End Function