繁体   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