table of contents
ECPG(1) | PostgreSQL Client Applications | ECPG(1) |
NAME¶
ecpg - 嵌入的 SQL C 预处理器
SYNOPSIS¶
ecpg [ option... ] file...
DESCRIPTION 描述¶
ecpg 是一个嵌入的用于C 语言的 SQL 预编译器。 它把嵌有 SQL 语句的 C 程序通过将 SQL 调用替换成特殊的函数调用的方法转换成普通的 C 代码。 然后输出的文件就可以用任何 C 编译工具进行处理。
clusterdb 将把命令行上给出的每个输入文件转换成对应的 C 输出文件。 输入文件最好有 .pgc 的扩展名, 这样,这个扩展将被替换成 .c 来决定输出文件名。 如果输入文件的扩展不是 .pgc,那么输出文件名将通过在全文件名后面附加 .c 来生成。 输出文件名也可以用 -o 选项覆盖。
本手册页并不描述嵌入的
SQL 语句,参阅 Chapter 29
获更多信息。
OPTIONS 选项¶
clusterdb 接受下列命令行参数:
- -c
-
为 SQL 代码自动生成某种 C 代码。目前,这个选项可以用于 EXEC SQL TYPE。 - -C mode
-
设置一个兼容模式。mode 可以是 INFORMIX 或者 INFORMIX_SE。 - -D symbol
-
定义一个 C 预编译器符号。 - -i
-
同时也分析系统包含文件。 - -I include-path
-
声明一个附加的包含路径。用于寻找通过 EXEC SQL INCLUDE 包含的文件。缺省是 .(当前目录), /usr/local/include, 在编译时定义的PostgreSQL 包含路径(缺省: /usr/local/pgsql/include)和 /usr/include。顺序如上。 - -o filename
-
声明ecpg应该把它的所有输出写到给出的 filename里。 - -t
-
打开自动提交模式。在这种模式象,每个查询都自动提交, 除非它是包围在一个明确的事务块中。在缺省模式下, 命令只是在发出 EXEC SQL COMMIT 的时候提交。 - -v
-
打印额外的信息,包括版本和包含路径。 - --help
-
显示一个命令用法的简单摘要,然后退出。 - --version
-
显示版本信息,然后退出。
NOTES 注意¶
在编译预处理的 C
代码文件的时候,编译器需要能够找到
PostgreSQL 包含目录里面的 ECPG
头文件。因此,我们在调用编译器的时候可能需要使用
-I
(比如,-I/usr/local/pgsql/include)。
使用了嵌入 SQL 的 C
代码必须和 libecpg
库链接,比如,使用这样的链接选项:
-L/usr/local/pgsql/lib -lecpg
这些目录的实际值可以通过
pg_config(1) 找到。
EXAMPLES 例子¶
如果你有一个叫 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
译者¶
Postgresql 中文网站 何伟平 <laser@pgsqldb.org>
2003-11-02 | Application |