2009-06-18 6 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ですが、上記のActiveX EXEによって実行されます。このActiveX EXEはMSScriptコントロールを使用し、スクリプトエンジンが使用できるオブジェクトを多数含んでいます。一種の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 
    

    私の問題は、私はそれがoRecordSet.open sQuery, , , adCmdText当たるとThe connection cannot be used to perform this operation. It is either closed or invalid in this context.を取得しておくことである(私はMicrosoftのサイトから得た。)

    刺激性の少しのTis」。

  • 答えて

    3

    私はDBFファイルを接続する必要があるときに私が使用する接続文字列は、通常のようなものです。

    1

    最新かつ最高のFoxProドライバを使用してみてください。それは私のために正常に動作

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

    +0

    またはFoxProプロバイダーを使用して、ODBCプロバイダーをサンドウィッチするか、FoxProプロバイダーが提供する拡張機能を失う必要はありません。 – Bob

    関連する問題