2009-06-18 35 views
0
  • DBF文件是在C:\dbase\clip53\PRG\stkmenu\WPACK3\
  • DBF文件稱爲WPACKS.CFG(故意不DBF)

在ActiveX EXE的VB6代碼用於打開數據庫並記錄:如何從VB6的xBase/Clipper文件中讀取數據?

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,但是由前面提到的使用MSScript控件的ActiveX EXE執行,並且有一大堆對象可以提供給腳本引擎。一種VBScript-on-steroids方法。

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(這是我從微軟網站獲得。)

「提斯刺激性的一點點。

回答

3

當我需要連接一個DBF文件,我使用的連接字符串通常是這樣的:

"Driver={Microsoft dBase Driver (*.dbf)};dbq=<filePath>" 

它工作正常的我。

1

嘗試使用最新最好的FoxPro驅動程序。

+0

或者使用FoxPro提供程序,因此您不必通過ODBC提供程序進行thunk或丟失由FoxPro提供程序提供的增強功能。 – Bob 2009-06-18 17:01:43