在Delphi中用ADO連接FoxPro數據庫

VisualPro,即VFP,那個小狐狸頭,在學校時拿它做數據庫理論教育,但自從6.0之後就從未接觸它了,聽說出在有9.0,但我覺得它的時代已經過去了。例外的是,現在還發現有人用VFP寫的應用,還是號稱ERP的呢,難以置信吧?!爲了取用VFP數據庫(也就是.dbf文件)裏的數據,不得已重新撿起這“老古董”。當然,我不會爲了它再安裝一個VFP6.0,應該可以通過ADO連接的,而且,就一個簡單的數據查詢,沒有複雜的操作,用Delphi寫個小程序即可。

開始用ADOConnection控件連接數據庫,但發現,“提供程序”列表里根本沒有適合VFP的驅動!轉而想想創建一個ODBC Link File再在ADO裏引用吧,在“ODBC數據源管理器”裏倒是列出了不少VFP(或者*.dbf)有關的驅動,可惜是虛設的,當你點擊它時會彈出要求下載安裝的提示(-_-!)

       回到ADOConnection控件,試着選了“Microsoft OLE DB Provider for ODBC Drivers”,然後,“1.選擇使用數據源名稱”,在列表裏選擇“dBASE Files”;2.“輸入登錄服務器信息”可以忽略;“3.輸入要使用的初始目錄”,將存放.dbf文件的目錄路徑複製到其中,完整的連接串是這樣的“Provider=MSDASQL.1;Persist Security Info=False;Data Source=dBASE Files;Initial Catalog={DATA_PATH}”(其中{DATA_PATH}.dbf存放路徑)。點擊“測試連接”居然成功了,然後試試ADOTableADOQuery連接其中一個文件,也成功地看到了表中的數據。但是,這並不意味着完全成功了,這只是dBASE驅動“部分兼容”早期的VFP數據庫,再試試其它的.dbf文件時,你會發現產生錯誤了:

       發生“意外錯誤”,不必找其原因了,估計是沒法解決的,因爲本來就沒用對驅動,還是另尋它法吧,哈哈~

       開始GOOGLE VFP的驅動,發現了一標題爲“不包括在 MDAC 2.6 或更高版本的 visual FoxPro ODBC 驅動程序”(這是機器翻譯的)的文章,看標題就知道VFP驅動真是很有年份了!因爲現在至少是用MDAC2.7了。跟着文章找到了Microsoft OLE DB Provider for Visual FoxPro 9.0,似乎沒有中文版的,將就着用吧。下載安裝,發現還有Sample data and program file,不錯!安裝完後(記得重啓Delphi),發現ADOConnection控件的“提供程序”列表裏多了一項“Microsoft OLE DB Provider for Visual FoxPro”,對了,要的就是它!

       迅速用這個驅動連接數並測試,發現剛纔用“dBase Files”驅動連接出錯的文件能正常連接了。完成的連接串是:“Provider=VFPOLEDB;Data Source={DATA_PATH};Password="";Collating Sequence=MACHINE (其中{DATA_PATH}.dbf存放路徑)。

       ADOTable控件取數據就簡單了,直接可以先表名(也就是.dbf文件的文件名),而用ADOQuery控件查詢時,則直接“SELECT * FROM dbfilename”,其中dbfilename就是.dbf文件名,可以要擴展名也,也可以不要擴展名。

       至於更復雜的操作要慢慢試了,想必跟操作數據庫大同小異了。(^_^)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章