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毫秒。