在Delphi for Win32中,如何以本地方式讀取和寫入dbf文件,而不使用BDE?我知道網絡中有一些組件可用,但我從未使用過任何組件,所以我不知道如何選擇(如果有的話)。如何以本地方式讀寫dbf?
回答
您可以使用ADO訪問DBF文件
見的部份示例代碼(使用TAdoConnection
和TAdoDataSet
組件)。
var
dbf_folder : string;
begin
dbf_folder:='c:\bdd';//set your dbf folder location here
ADOConnection1.LoginPrompt:=false;
ADOConnection1.ConnectionString:=Format('Provider=Microsoft.JET.OLEDB.4.0;Data Source=%s;Extended Properties=dBase IV;',[dbf_folder]);
try
ADOConnection1.Connected:=True;
ADODataSet1.CommandText:='Select * from file.dbf'; //make your SQL query using the name of the dbf file
ADODataSet1.Open;
while not ADODataSet1.eof do
begin
//do your stuff here
//ADODataSet1.FieldByName('').AsString
ADODataSet1.Next;
end;
except
on E : Exception do
ShowMessage(E.Message);
end;
end;
如果您不需要索引,則不難讀取DBF文件。格式非常簡單。一個頭部跟着固定大小的寄存器。每個寄存器中都有一個標誌,表示它是否被刪除。我建議尋找一個你想要的組件。你可以找到一些in Torry's Delphi pages。
在我開始使用Firebird之前,我曾多次使用Software Science的Topaz。它總是一個優秀的圖書館,有一個了不起的手冊和良好的技術支持。它支持索引,甚至還有內存選項。我認爲這將是一個不錯的選擇。
不幸的是我最近發現(在我已經花了太多的時間在轉換代碼之後)它不支持NULL值。它們根據字段類型自動轉換爲空字符串或0。這個缺失的功能使得Topaz對我來說毫無價值。 :-(現在我已經申請了他們的「60天退款」優惠,希望他們能夠堅持下去,所以至少我可以拿回100美元,時間已經流失了。 – dummzeuch 2011-08-20 11:23:33
我真的很抱歉不適合當我定期處理他們時,他們是一個非常專業的以客戶爲導向的公司,我希望你的經驗和我的經驗一樣好,再次,我很抱歉,我指出你在一個盲人的小巷。 – jrodenhi 2011-08-22 20:46:23
jrodenhi:這當然不是你的錯,在我已經確定Topaz沒有做我想做的事情之後,我才發現你的答案,我發表了這個評論,讓其他人意識到這個缺點,所以他們不會像我那樣浪費太多時間 – dummzeuch 2011-08-23 07:36:06
當我還在使用DBF文件(一些傳統應用程序)時,我使用了TDBF。我仍然使用它來維護這些和那裏的應用程序。它是免費的,有很多功能,並且效果很好。
ADO沒有爲我工作,但我設法用打開我的DBF文件BDE:
從數據訪問(或BDE,取決於你的Delphi的版本)部分,我把一個和TDataBase和,TTable的組件(如果你願意,你可以使用TQuery)。
通過雙擊TDataBase組件我打開設置對話框。填充名稱字段的'db_name'(名稱是任意的),驅動程序名稱='STANDARD',參數字段:'PATH = C:\ Path \ To \ DBF_FILES \'。 然後我設置Connected = True。
然後在TTable組件中,我設置DatabaseName ='db_name' - 我在TDataBase組件中設置的那個。並且TableName屬性設置了位於指定文件夾中的'DB_FILE.dbf'。 Active = True。
你知道下一步該怎麼做
- 1. 64位java讀寫* dbf
- 2. 讀寫地方不寫?
- 3. 讀/寫xBASE(DBASE 3-5/DBF)文件
- 4. 以本地方式Git
- 5. 以特定方式讀寫文件
- 6. 如何以正確的方式讀取/寫入UNIX套接字?
- 7. 如何讀取以登錄方式寫入的cookie?
- 8. 以編程方式閱讀地圖
- 9. 如何直接讀取dbf/dbt文件?
- 10. Android - NFC本地讀寫
- 11. 如何寫入asp.net中的dbf文件?
- 12. c#如何正確寫入.dbf(foxpro)
- 13. 讀DBF文件/硒
- 14. VB.NET將MSSQL數據寫入DBF格式
- 15. 如何使用本地Swift方式在Swift 3中讀取Plist?
- 16. 以編程方式讀取本地密碼策略
- 17. 如何以編程方式編寫nslookup?
- 18. Flash動作腳本可以讀寫本地文件系統嗎?
- 19. 如何以鉤子繞過的方式腳本編寫git?
- 20. 如何以編程方式寫入記事本c#
- 21. 如何以編程方式在UITextView上編寫文本
- 22. Bean驗證:如何以編程方式本地化消息?
- 23. 如何以編程方式恢復SQL本地數據庫
- 24. 如何以編程方式取消本地化組件/頁面
- 25. 如何以編程方式操作本地Google文檔文件
- 26. 如何以獨立於區域的方式查找本地組?
- 27. Silverlight MVVM:如何以正確的方式進行本地化?
- 28. 如何以編程方式刪除本地tfs內容?
- 29. 如何以編程方式獲取本地化資源?
- 30. 從C#處理.dbf的最佳方式
+1開箱即用的德爾福解決方案 – 2010-09-26 07:50:36
這隻適用於我的目的 – eKek0 2010-09-27 00:30:10
錯誤:「網絡或磁盤錯誤」:( – 2017-08-24 20:43:56