lazarus:数据集快速导出为excel、csv、sql及其他多种格式

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
由于lazarus中的例子: lazarus\fpc\2.6.0\source\packages\fcl-web\examples\webdata\demo 用的extjs是3.4版,在新的extjs4.2环境下不能运行,费了好大劲,终于搞定。期间到laz英文论坛提问,可能跟我英文差有关吧,一个回答的都没有。搞定后,版主又要我进行了“ open a new issue in the bugtracker and add a diff with the changes ”。本着互助、共享的原则,整个东西放到lazarus中文社区论坛,欢迎大家不断改善源码,提高性能,并且将改善后的源码进行共享。 我的环境:winxp,lazarus1.1,fpc2.6.0,apache2.2,extjs4.2。 不要犯怵,安装配置很简单,运行这个demo一行代码都不需要编写。后面我会详细讲安装运行方法。 安装配置: 1、安装Apache。下载地址:http://www.fayea.com/apache-mirror//httpd/binaries/win32/httpd-2.2.22-win32-x86-openssl-0.9.8t.msi 其他版本我没试过,高版本的应该可以。 我安装到了D:\apache2.2 2、下载安装Extjs4.2。下载地址:http://cdn.sencha.io/ext-4.2.0-beta.zip?ref=extjs.org.cn 下载后,解压缩,文件夹复制到 D:\apache2.2\htdocs\,然后改名为Ext。 3、下载附件。 原来的lazarus demo 源码未做任何修改,直接编译即可。编译之前需要安装weblaz和lazwebextra两个包。 本文附件中已经有extgrid.exe,可以直接使用。 将extgrid.exe和users.dbf复制到 apache2.2\cgi-bin 目录下。 将附件中其余文件复制到 apache2.2\htdocs\demodbf 目录下。 好了,全部配置完成。 4、启动Apache,访问:http://localhost/demodbf/extgrid-json.html
您好!对于Lazarus开发环境下的SQL数据库查询,您可以使用Lazarus自带的数据库连接组件TSQLQuery来实现。 首先,您需要在Lazarus中创建一个数据库连接组件,例如TSQLite3Connection或者TMySQLConnection,具体根据您使用的数据库类型而定。然后,在代码中创建一个TSQLQuery组件,并将其连接到数据库连接组件。 下面是一个简单的示例代码,演示如何执行SQL查询并获取结果: ```pascal uses SQLite3Conn, SQLDB, DB; procedure ExecuteQuery; var SQLQuery: TSQLQuery; DataSource: TDataSource; begin // 创建数据库连接组件 SQLite3Connection1 := TSQLite3Connection.Create(nil); SQLite3Connection1.DatabaseName := 'your_database.db'; // 替换为您的数据库文件路径 // 创建TSQLQuery组件并连接到数据库 SQLQuery := TSQLQuery.Create(nil); SQLQuery.SQLConnection := SQLite3Connection1; // 执行SQL查询 SQLQuery.SQL.Text := 'SELECT * FROM your_table'; // 替换为您的查询语句 SQLQuery.Open; // 处理查询结果 DataSource := TDataSource.Create(nil); DataSource.DataSet := SQLQuery; // 遍历结果集 while not SQLQuery.EOF do begin // 获取字段值 ShowMessage(SQLQuery.FieldByName('field_name').AsString); // 替换为您的字段名 SQLQuery.Next; end; // 释放资源 DataSource.Free; SQLQuery.Free; SQLite3Connection1.Free; end; ``` 请注意,上述示例中的数据库连接组件和查询语句需要根据您实际的数据库类型和表结构进行相应的修改。 希望这能帮到您!如果您有任何其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值