提供一段代码,自行参考,不要怀疑肯定能用的。 这段代码前面有一个登陆画面,输入用户密码数据库名 就是代码的参数。 Option Compare DatabasePublic gRetCode As Integer Public gSQLstring As String Public gRecordCount As LongPublic gOraDBcon As ADODB.Connection Public gOraRecSet As ADODB.Recordset 'Default '----------------------------------------------------- 'FunctionName :funConnectionForOracle 'Description :OracleDB Connection ' 'Argument : I : sDB (Connection OracleDataBase Name) ' I : sUser (UserName) ' I : sPassword (Password) ' I/O : coOracleCo (Connection Object) ' 'CREATE BY :S.Saito[DataMate] 'CREATE DATE :2005/05/11 'LAST UPDATED BY :S.Saito[DataMate] 'LAST UPDATE DATE :2005/05/11 'VERSION :1.0 '----------------------------------------------------- Public Function funConnectionForOracle(sDB As String, _ sUser As String, _ sPassword As String, _ coOracleCo As ADODB.Connection)Dim ConnecStr As String Dim Ctr As Long Dim ErrorStr As String Dim ErrorCount As IntegerOn Error GoTo ConnectionError 'ErrorJump
'--<OracleDB Connection> coOracleCo.Open ConnecStrExit FunctionConnectionError: Dim ErrorMsgStr As String With coOracleCo For ErrorCount = 0 To .Errors.Count - 1 With .Errors(ErrorCount) ErrorMsgStr = ErrorMsgStr & .DESCRIPTION End With Next End With MsgBox ErrorMsgStr
funConnectionForOracle = -1End Function '----------------------------------------------------- 'FunctionName :funSqlExecuteForOracle 'Description :SQL-Execute ' 'Argument : I : objConnection (Connection Object) ' I/O : objRecSet (RecordSet Object) ' I : sSqlString (Execute SQL String) ' I/O : lRecordCount (Record Count) ' 'CREATE BY :S.Saito[DataMate] 'CREATE DATE :2005/05/13 'LAST UPDATED BY :S.Saito[DataMate] 'LAST UPDATE DATE :2005/05/16 'VERSION :1.1 '----------------------------------------------------- Public Function funSqlExecuteForOracle(objConnection As ADODB.Connection, _ objRecSet As ADODB.Recordset, _ sSqlString As String, _ lRecordCount As Long)Dim CommandObj As ADODB.Command Dim ErrorCount As Integer Dim Ctr As Long Dim RecCtr As Long On Error GoTo RecordSetGetError '--<Ini> RecCtr = 0 '--<ReturnCode Set> funSqlExecuteForOracle = 0 '--<CommandObj Create> Set CommandObj = New ADODB.Command '--<RecordSet ObjectCreate & Setting> Set objRecSet = New ADODB.Recordset objRecSet.CursorType = adOpenDynamic
'--<ActiveConnection Set> Set CommandObj.ActiveConnection = objConnection Set objRecSet.ActiveConnection = objConnection
'--<SQL-Execute> With CommandObj .CommandText = sSqlString Set objRecSet = .Execute End With '--<RecordCount> If lRecordCount <> -1 Then ' If Mid(Trim(UCase(sSqlString)), 1, 6) = "SELECT" Then
'--<RecordCount> With objRecSet Do While .EOF = False RecCtr = RecCtr + 1 .MoveNext Loop
lRecordCount = RecCtr
If RecCtr > 0 Then .MoveFirst End If End With
' End If End If ''objRecSet.Open SqlStr, ConnecStr Exit Function '---------------------- (Chr(13) & Chr(10)) RecordSetGetError: Dim ErrorMsgStr As String With objConnection For ErrorCount = 0 To .Errors.Count - 1 With .Errors(ErrorCount) ErrorMsgStr = ErrorMsgStr & .DESCRIPTION End With Next End With MsgBox ErrorMsgStr funSqlExecuteForOracle = -1End Function
这段代码前面有一个登陆画面,输入用户密码数据库名
就是代码的参数。
Option Compare DatabasePublic gRetCode As Integer
Public gSQLstring As String
Public gRecordCount As LongPublic gOraDBcon As ADODB.Connection
Public gOraRecSet As ADODB.Recordset 'Default
'-----------------------------------------------------
'FunctionName :funConnectionForOracle
'Description :OracleDB Connection
'
'Argument : I : sDB (Connection OracleDataBase Name)
' I : sUser (UserName)
' I : sPassword (Password)
' I/O : coOracleCo (Connection Object)
'
'CREATE BY :S.Saito[DataMate]
'CREATE DATE :2005/05/11
'LAST UPDATED BY :S.Saito[DataMate]
'LAST UPDATE DATE :2005/05/11
'VERSION :1.0
'-----------------------------------------------------
Public Function funConnectionForOracle(sDB As String, _
sUser As String, _
sPassword As String, _
coOracleCo As ADODB.Connection)Dim ConnecStr As String
Dim Ctr As Long
Dim ErrorStr As String
Dim ErrorCount As IntegerOn Error GoTo ConnectionError 'ErrorJump
'--<ErrorCode Set>
funConnectionForOracle = 0 '--<ConnectionObject Create>
Set coOracleCo = New ADODB.Connection '--<Connection-String Create>
ConnecStr = "Provider=MSDAORA;" & _
"Data Source=" & sDB & ";" & _
"User Id=" & sUser & ";" & _
"Password=" & sPassword & ";"
'--<OracleDB Connection>
coOracleCo.Open ConnecStrExit FunctionConnectionError:
Dim ErrorMsgStr As String
With coOracleCo
For ErrorCount = 0 To .Errors.Count - 1
With .Errors(ErrorCount)
ErrorMsgStr = ErrorMsgStr & .DESCRIPTION
End With
Next
End With MsgBox ErrorMsgStr
funConnectionForOracle = -1End Function
'-----------------------------------------------------
'FunctionName :funSqlExecuteForOracle
'Description :SQL-Execute
'
'Argument : I : objConnection (Connection Object)
' I/O : objRecSet (RecordSet Object)
' I : sSqlString (Execute SQL String)
' I/O : lRecordCount (Record Count)
'
'CREATE BY :S.Saito[DataMate]
'CREATE DATE :2005/05/13
'LAST UPDATED BY :S.Saito[DataMate]
'LAST UPDATE DATE :2005/05/16
'VERSION :1.1
'-----------------------------------------------------
Public Function funSqlExecuteForOracle(objConnection As ADODB.Connection, _
objRecSet As ADODB.Recordset, _
sSqlString As String, _
lRecordCount As Long)Dim CommandObj As ADODB.Command
Dim ErrorCount As Integer
Dim Ctr As Long
Dim RecCtr As Long
On Error GoTo RecordSetGetError '--<Ini>
RecCtr = 0 '--<ReturnCode Set>
funSqlExecuteForOracle = 0
'--<CommandObj Create>
Set CommandObj = New ADODB.Command
'--<RecordSet ObjectCreate & Setting>
Set objRecSet = New ADODB.Recordset
objRecSet.CursorType = adOpenDynamic
'--<ActiveConnection Set>
Set CommandObj.ActiveConnection = objConnection
Set objRecSet.ActiveConnection = objConnection
'--<SQL-Execute>
With CommandObj
.CommandText = sSqlString
Set objRecSet = .Execute
End With '--<RecordCount>
If lRecordCount <> -1 Then
' If Mid(Trim(UCase(sSqlString)), 1, 6) = "SELECT" Then
'--<RecordCount>
With objRecSet
Do While .EOF = False
RecCtr = RecCtr + 1
.MoveNext
Loop
lRecordCount = RecCtr
If RecCtr > 0 Then
.MoveFirst
End If
End With
' End If
End If ''objRecSet.Open SqlStr, ConnecStr
Exit Function
'---------------------- (Chr(13) & Chr(10))
RecordSetGetError:
Dim ErrorMsgStr As String
With objConnection
For ErrorCount = 0 To .Errors.Count - 1
With .Errors(ErrorCount)
ErrorMsgStr = ErrorMsgStr & .DESCRIPTION
End With
Next
End With MsgBox ErrorMsgStr
funSqlExecuteForOracle = -1End Function