安装了Orcal 9i 数据库客户端后 如何利用vb编程从网络数据库中读数据? 

解决方案 »

  1.   

    提供一段代码,自行参考,不要怀疑肯定能用的。
    这段代码前面有一个登陆画面,输入用户密码数据库名
    就是代码的参数。
    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