簡體   English   中英

如何在 Lazarus/Free Pascal 的 DBGrid 中加載 XML/CSV/ODB 文件?

[英]How to load a XML/CSV/ODB file in DBGrid in Lazarus/Free Pascal?

我想在 Lazarus 的 TDBGrid 中打開一個數據庫/電子表格,我試過DBGrid1.LoadFromFile(filename); 與 xml、csv、xlsx、odb。 但是對於每個文件,我都會收到錯誤消息。

這是我正在使用的代碼,每次嘗試時“xml”都不同:

procedure TForm1.FormCreate(Sender: TObject);
begin
  DBGrid1.LoadFromFile('/home/pi/Jesse Gielen/PWS/Databeesjes/WoahWeerGegevens.xml');
end; 

當我嘗試 xml 時,我收到此錯誤: EDOMHierarchyRequest in Document.InsertBefore

當我嘗試 csv 時,出現此錯誤:

Project project1 raised exception class 'EXMLReadError' (line 1 pos 1): Illegal at document level

當 xlsx: Project project1 raised exception class 'EXMLReadError' (line 1 pos 3): Invalid character

當 odb 與 xlsx 相同時: Project project1 raised exception class 'EXMLReadError' (line 1 pos 3): Invalid character

那么:如何在 Lazarus 的 DBGrid 中打開文件? 如果這不可能以任何方式(我會發現 stange,因為那為什么有一個程序呢?)那么我的問題是:如何將 TStringgrid 轉換為 TDBGrid? (因為將文件加載到 TStringgrid 工作正常)

你問錯問題了。 考慮這一點的方法是,TDBGrid 顯示通過 TDataSource 從 TDataSet 后代提供給它的數據。 因此,您需要做的是從文件中加載 TDataSet 后代,然后數據將自動顯示在 TDBGrid 中(當數據集打開時)。

Lazarus 的標准組件包括幾個 TDataSet 后代,包括 TMemDataSet 和 TCSVDataSet,帶有 LoadFromFile 和 LoadFromStream 方法。 查看最適合您需求的在線文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM