PostgreSQL 9.4.4 中文手册
上一页 | 上一级 | 章 33. ECPG - 在C中嵌入SQL | 下一页

# 33.1. 概念

嵌入SQL程序主要由一种普通的编程语言代码组成， 在我们这个场合中是C，并且在其中与一些特殊标记的段混合。 要制作这样的程序，源代码(`*.pgc`) 首先经过嵌入的SQL预处理器处理， 它把源代码转换成普通的C程序(`*.c`)， 然后这个程序可以用C编译器进行处理。 关于编译和链接的细节参阅第 33.10 节。 转变的ECPG应用在libpq库中通过嵌入的SQL库（ecpglib）调用函数。 并且使用正常的前后端协议与PostgreSQL服务器通信。

嵌入的SQL相比于其它的从 C代码中处理SQL命令的优点有几条。 首先，它照看那些从你的C 程序中的变量中传来传去数值的事情。 第二，在编译时检查程序中SQL代码句法正确性。 第三，在C代码里嵌入SQL是定义 在SQL标准里的， 并且被许多其它的SQL数据库支持。 PostgreSQL的实现被设计成尽可能匹配这个标准， 并且通常可以把为其它SQL数据库书写的SQL移植到 PostgreSQL中来，反之亦然。

如上所述，为嵌入SQL 接口写的程序通常是带着插入进来的特殊代码的C程序， 这些特殊代码用于执行与数据库相关的动作。 这些特殊代码通常的形式是下面这样：

    EXEC SQL ...;

这些语句语法上占据C语句的位置。根据具体语句的不同， 它们可以出现在全局环境中或者出现在一个函数里。 嵌入的SQL语句遵循普通SQL 代码的大小写敏感规则，而不是遵循C代码的。 它们也允许SQL标准部分中嵌套的C风格注释。不过程序中的C部分， 遵守C标准，不接受嵌套的注释。

下面的小节都是用来解释所有的嵌入SQL语句的。

上一页 | 起始页 | 下一页
ECPG - 在C中嵌入SQL | 上一级 | 管理数据库连接