返回介绍

I. 教程

II. SQL 语言

III. 服务器管理

IV. 客户端接口

V. 服务器端编程

VI. 参考手册

VII. 内部

VIII. 附录

ecpg

发布于 2019-09-30 03:12:12 字数 2375 浏览 1687 评论 0 收藏 0

名称

ecpg--嵌入的 SQL C 预处理器

语法

ecpg [option...] file..

描述

ecpg 是一个嵌入的用于 C 语言的 SQL 预编译器。它把嵌有 SQL 语句的 C 程序通过将 SQL 调用替换成特殊的函数调用的方法转换成普通的 C 代码。然后输出的文件就可以用任何 C 编译工具进行处理。

ecpg 将把命令行上给出的每个输入文件转换成对应的 C 输出文件。输入文件最好有 .pgc 扩展名,这样,这个扩展将被替换成 .c 来决定输出文件名。如果输入文件的扩展不是 .pgc ,那么输出文件名将通过在全文件名后面附加 .c 来生成。输出文件名也可以用 -o 选项覆盖。

本手册页并不描述嵌入的 SQL 语句,参阅章31获更多信息。

选项

ecpg 接受下面命令行参数:

-c

为 SQL 代码自动生成某种 C 代码。目前,这个选项可以用于 EXEC SQL TYPE

-C mode

设置一个兼容模式。mode 可以是 INFORMIXINFORMIX_SE 之一。

-D symbol

定义一个 C 预处理器符号

-i

同时也分析系统包含文件

-I directory

声明一个附加的包含路径。用于寻找通过 EXEC SQL INCLUDE 包含的文件。缺省是: .(当前目录)、/usr/local/include 、在编译时定义的 PostgreSQL 包含路径(缺省为 /usr/local/pgsql/include)、/usr/include 。顺序同上。

-o filename

指定 ecpg 应该把它的所有输出写到给出的 filename 里。

-r option

选择一个运行时行为。目前,option 只能是 no_indicator

-t

打开自动提交模式。在这种模式像,每个查询都自动提交,除非它是包围在一个明确的事务块中。在缺省模式下,命令只是在发出 EXEC SQL COMMIT 的时候提交。

-v

打印额外的信息,包括版本和包含路径。

--help

显示一个命令用法的简单摘要,然后退出。

--version

显示版本信息,然后退出。

注意

在编译预处理的 C 代码文件的时候,编译器需要能够找到 PostgreSQL 包含目录里面的 ECPG 头文件。因此,在调用编译器的时候可能需要使用 -I 选项(比如 -I/usr/local/pgsql/include)。

使用了嵌入 SQL 的 C 代码必须和 libecpg 库链接,比如,使用这样的链接选项:-L/usr/local/pgsql/lib -lecpg

这些目录的实际值可以通过 pg_config 找到。

例子

如果你有一个叫 prog1.pgc 的嵌入 SQL 的 C 源代码,你可以用下面的命令序列创建一个可执行程序:

ecpg prog1.pgc
cc -I/usr/local/pgsql/include -c prog1.c
cc -o prog1 prog1.o -L/usr/local/pgsql/lib -lecpg

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文