pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
现在你已经知道如何编写嵌入式 SQL C 程序了, 可能还想知道如何编译它们。编译之前, 要先用嵌入式 SQL C 预处理器处理文件,它把你使用的 SQL 语句转换成特殊的函数 调用。编译之后,必须与一个包含 所需函数的特殊库链接。这些函数从 参数中获取信息,用 libpq 接口执行 SQL 查询,并把结果 放到指定用于输出的参数中。
预处理器程序名为 ecpg,它包含在 正常的 PostgreSQL 安装中。嵌入式 SQL 程序通常使用扩展名 .pgc 命名。如果你有一个名为 prog1.pgc 的程序文件,只需 调用
ecpg prog1.pgc
即可预处理它。这会创建一个名为 prog1.c 的文件。如果 你的输入文件不遵循建议的命名模式,可以 用 -o 选项显式指定 输出文件。
预处理后的文件可以正常编译,例如
cc -c prog1.c
生成的 C 源文件包含来自 PostgreSQL 安装的码头文件,因此如果你把 PostgreSQL 安装在 默认不搜索的位置,就必须在编译 命令行中加上类似 -I/usr/local/pgsql/include 的 选项。
要链接嵌入式 SQL 程序,需要链接libecpg库,例如:
cc -o myprog prog1.o prog2.o ... -lecpg
同样,可能需要在该命令行中添加类似-L/usr/local/pgsql/lib的选项。
如果你使用make来管理一个大工程的构建过程,把下面的隐式规则包括在你的 makefile 中将会很方便:
ECPG = ecpg
%.c: %.pgc
$(ECPG) $<
ecpg 命令的完整语法 详见 PostgreSQL 7.3.21 参考手册。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。