lazarus被成为快速开发工具,为什么说“快速”,重要的一点是,很多工具是现成的,可以拿来直接就用。比如数据导出,如果需要把数据集导出为excel格式文件,写代码可能需要很多时间。lazarus就不用了,有TFPSExport。另外还有很多其他格式的导出工具,简单设置一下属性就可以。
这是lazarus控件集的dataExport选项卡包含的各种导出控件:
从左到右依次是:
TCSVExporter,
TFixedLengthExporter,
TSQLExporter,
TXMLXSDExporter,
TSimpleXMLExporter,
TSimpleJSONExporter,
TFPDBFExport,
TTexExporter,
TRTFExporter,
TStandardExportFormats,
TFPDataExporter
叹为观止!
前几天我自己写了一个导出为sql文件的函数,废了不少时间。因为我原来不知道有这个东西,所以说熟悉工具很重要。
这些导出控件使用基本相同,以TSQLExporter为例,导出代码为:
var
sql: string;
fnOut: string;
iStart: cardinal;
begin
SaveDialog1.Filter := 'sql文件|*.sql';
if SaveDialog1.Execute then
begin
fnOut := SaveDialog1.FileName;
end
else
exit;
iStart := GetTickCount;
sql := 'select * from ' + tableEn_crud_master +
' where (1=1) ' + master_cust_query_sql_all;
queryTmp.Close;
queryTmp.SQL.Text := sql;
//queryTmp.PacketRecords:= -1;
queryTmp.Open;
try
SQLExporter1.Dataset := queryTmp;
SQLExporter1.FormatSettings.TableName := tableEn_crud_master;
SQLExporter1.FileName := fnOut;
SQLExporter1.Execute;
memo1.append('导出完成: ' + fnOut + Format(',用时%d毫秒。', [getTickCount64 - iStart]));
//memo1.append();
except
on E: Exception do
begin
memo1.append('出错了7: '+E.ClassName+'/'+E.Message);
end;
end;
程序中随便使用了几种格式:
导出速度很快,十来个字段1000条记录:
导出完成: D:\ssss.sql,用时46毫秒。