如何从VB6中的xBase/Clipper文件中读取数据? DBF文件位于C:\dbase\clip53\PRG\stkmenu\WPACK3\ DBF文件被称为WPACKS.CFG(故意不是.DBF)

如何从VB6中的xBase/Clipper文件中读取数据? DBF文件位于C:\dbase\clip53\PRG\stkmenu\WPACK3\ DBF文件被称为WPACKS.CFG(故意不是.DBF),vb6,adodb,clipper,xbase,Vb6,Adodb,Clipper,Xbase,ActiveX EXE中用于打开数据库和记录集的VB6代码: Function OpenDatabase(sFile As Variant, Optional sProvider As Variant = "Provider=Microsoft.Jet.OLEDB.4.0") As Variant ' ADODB.Connection Dim nErr As Long Dim sErr As String Dim oConnection As Object 'ADODB

ActiveX EXE中用于打开数据库和记录集的VB6代码:

Function OpenDatabase(sFile As Variant, Optional sProvider As Variant = "Provider=Microsoft.Jet.OLEDB.4.0") As Variant  ' ADODB.Connection
    Dim nErr As Long
    Dim sErr As String
    Dim oConnection As Object 'ADODB.Connection
    Set oConnection = CreateObject("ADODB.Connection")
    On Error Resume Next
    oConnection.open sProvider & ";Data Source=" & sFile
    nErr = Err.Number
    sErr = Err.Description
    On Error GoTo 0
    If nErr <> 0 Then
        Err.Raise OPENDATABASE_E_NOTFOUND, , sErr
    End If
    Set OpenDatabase = oConnection
End Function

Function OpenRecordSet(ByRef oDb As Variant, sQuery As Variant, Optional bCmdText As Boolean = False) As Variant ''ADODB.Connection ADODB.Recordset
    Const adOpenForwardOnly  As Long = 0
    Const adOpenStatic As Long = 3
    Const adOpenDynamic As Long = 2
    Const adOpenKeyset As Long = 1
    Const adLockOptimistic As Long = 3
    Const adCmdText As Long = 1
    Dim oRecordSet As Object 'ADODB.Recordset
    Set oRecordSet = CreateObject("ADODB.RecordSet")
    If bCmdText Then
        oRecordSet.open sQuery, , , adCmdText
    Else
        oRecordSet.open sQuery, oDb, adOpenKeyset, adLockOptimistic
    End If
    Set OpenRecordSet = oRecordSet
End Function
我的问题是我一直得到
连接无法用于执行此操作。它在此上下文中是关闭的或无效的。
当它点击
oRecordSet.open sQuery,,adCmdText时(我从Microsoft站点获得)


这有点令人恼火。

尝试使用最新和最好的FoxPro驱动程序。

尝试使用最新和最好的FoxPro驱动程序。

我需要连接DBF文件时使用的连接字符串通常类似于:

"Driver={Microsoft dBase Driver (*.dbf)};dbq=<filePath>"
“驱动程序={Microsoft数据库驱动程序(*.dbf)};dbq=”

它对我来说很好。

我需要连接DBF文件时使用的连接字符串通常类似于:

"Driver={Microsoft dBase Driver (*.dbf)};dbq=<filePath>"
“驱动程序={Microsoft数据库驱动程序(*.dbf)};dbq=”

它对我来说很好。

或者使用FoxPro提供程序,这样你就不必通过ODBC提供程序或丢失FoxPro提供的增强功能。或者使用FoxPro提供程序,这样你就不必通过ODBC提供程序或丢失FoxPro提供的增强功能。