Interbase导出为CSV

时间:2016-08-02 12:47:06

标签: csv delphi batch-file export interbase

我们正在使用Interbase XE3(2013)和Delphi XE。

我们需要将表导出为CSV-File,因为它们被导入到MsAccess中以进一步控制。

对于导出,我们使用IBExpert的功能和/或我们自己的程序(通过cxGrid从TClientDataSet导出为CSV文件)。

问题: 不幸的是,出口是有限的,我们没有出口整个表的解决方案(在这种情况下,400k行,大约80列,并且它每个月都在增加)。

我已经阅读了有关FBExport的内容,但尚未对其进行测试,因为我不想冒险使用我们的数据库。有人测试过这个工具吗?

合适的解决方案(待定): 我们需要一种方法将整个表从Interbase XE3导出到CSV文件中,而不受大小/列/行的限制(这就是为什么我认为CSV是没有开销的方式)。此外,我更喜欢可以通过批处理文件执行的解决方案,而无需在计算机前面的人。

亲切的问候

1 个答案:

答案 0 :(得分:0)

感谢Arioch,我设法回答了这个问题。

我有2个参数,“db的名称”和“要获取的行”(+可选的分隔符)。 我的程序确定表中的行数(只是Count(ID))并将其分成“要获取的行”中的碎片(因为我之前没有内存)

导出文件的开头是我从ibcquery获取的第一行列名。最大的我的多维数组的宽度由table的columncount设置。长度是“要获取的行”。

语句就像“SELECT * FROM TABLENAME ROWS X TO Y”。 这是为表的每个分割部分执行并写入我的数组。填充数组后,查询将关闭,数据将附加到我的CSV文件中。我释放了数组,下一部分被加载,直到整个表被写入我的文件。

因此,我认为下一个限制是文件大小。

感谢你的帮助!