【发布时间】:2016-02-05 05:45:34
【问题描述】:
我开发了一个使用 PostgreSQL 8.4 RDBMS 的客户端应用程序。
我的应用程序是用 Lazarus 和 ZeosLib 7.2 编写的,用于数据库访问。
我使用了很多存储过程,并且在特定点我使用 raise notice 来获取过程状态的信息,Es:
RAISE NOTICE 'Step 1: Import Items from CSV file';
....
....
RAISE NOTICE 'Step 2: Check Items data';
当我在 PgAdmin3 中执行程序时,它会在“消息”选项卡中显示通知。 有没有办法在我的客户端应用程序中捕获引发的通知?
【问题讨论】:
-
TZIBEventAlerter 可能是接收这些通知的组件。在我的博客article 中查看我关于 Firebird 事件的相关示例
-
FPC 包含 Postgres 的 API 标头:
fpc/packages/postgres/src/postgres3.pp和fpc/packages/postgres/src/postgres3dyn.pp在这里您可以找到函数 PQsetNoticeReceiver 所以您只需要从 Zeos 连接中获取PGconn参数(尝试启动在ZPlainPostgreSqlDriver单元中的function TZPostgreSQLBaseDriver.ConnectDatabase方法)PS:我正在使用FPC和Zeos的最新主干
标签: postgresql delphi lazarus notice zeos