我們有一個Windows應用程序,它將數據存儲在DBF中。我需要連接到某個表a_sname.dbf
並將SN_ACCOUNT
,SN_CURRBAL
和SN_CRLIM
列提取到要由另一個應用程序導入的文本文件中。在Visual Basic中連接到DBF
理想情況下,文本文件需要看起來像。
SN_ACCOUNT SN_CURRBAL SN_CRLIM
10 100 1000
20 200 2000
以上僅爲示例。
目前我期待至少能夠連接到DBF。
我有Oracle SQL知識的BASH腳本,但Windows端對我來說都是新手。我有驅動器映射到Z:\
。
更新1:下面是我測試腳本。
Option Explicit
Dim sDir : sDir = "Z:\"
Dim sCS : sCS = Join(Array(_
"Provider=Microsoft.Jet.OLEDB.4.0" _
, "Data Source=" & sDir _
, "Extended Properties=""dBASE IV;""" _
), ";")
Dim oCN : Set oCN = CreateObject("ADODB.CONNECTION")
oCN.Open sCS
Dim oRS : Set oRS = oCN.Execute("SELECT SN_ACCOUNT,SN_CURRBAL,SN_CRLIM FROM a_sname.dbf")
Do Until oRS.EOF
WScript.Echo oRS.Fields(0).Name, oRS.Fields(0).Value
oRS.MoveNext
Loop
oCN.Close
我收到錯誤消息Microsoft JET Database Engine: External table is not in the expected format.
。
更新2:這裏是的a_sname.dbf
的表信息的屏幕截圖。
更新3:它的工作原理!這是我正在使用的查詢。
SELECT SN_ACCOUNT,SN_CURRBAL,SN_CRLIM FROM a_sname.dbf
這裏是我使用的回聲。
WScript.Echo oRS.Fields(0).Value, oRS.Fields(1).Value, oRS.Fields(2).Value
。
是否可以將所有這些管道連接到文本文件並使列間隔更均勻?
爲了完整起見,您還應該發佈連接字符串。格式化記錄集的輸出值得一個問題(它不依賴於數據源)。 –