首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在VB6中读取xBase/Clipper文件中的数据?

如何在VB6中读取xBase/Clipper文件中的数据?
EN

Stack Overflow用户
提问于 2009-06-18 16:00:01
回答 2查看 1.6K关注 0票数 0

C:\dbase\clip53\PRG\stkmenu\WPACK3\

  • DBF文件中的
  • DBF文件称为WPACKS.CFG (故意不使用.DBF)

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

代码语言:javascript
复制
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

访问这些方法的脚本看起来有点像VBScript。它是VBScript,但由前面提到的ActiveX EXE执行,该EXE使用MSScript控件,拥有一堆对象,可以将其提供给脚本引擎。一种VBScript在类固醇上的方法。

代码语言:javascript
复制
uses database
uses system
dim db
dim rs
set db = database.opendatabase("C:\dbase\clip53\PRG\stkmenu\WPACK3\","Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=dBase III;User ID=Admin;Password=")
set rs = database.openrecordset(db, "SELECT * FROM WPACKS.CFG",true)
system.consolewriteline rs.recordcount

我的问题是,当The connection cannot be used to perform this operation. It is either closed or invalid in this context.访问oRecordSet.open sQuery, , , adCmdText (我从微软网站获得的)时,我一直得到它。

有点烦人。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-06-18 16:17:48

我在需要连接DBF文件时使用的连接字符串通常如下所示:

代码语言:javascript
复制
"Driver={Microsoft dBase Driver (*.dbf)};dbq=<filePath>"

对我来说很好。

票数 3
EN

Stack Overflow用户

发布于 2009-06-18 16:11:51

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1013553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档