这章描写一种用于 PostgreSQL 的嵌入SQL包。 它与C 和C++一起使用. 这部分是由 Linus Tolke(<[email protected]>) 和 Michael Meskes(<[email protected]>)
我们承认,这份文档相当不完整。但是因为这个接口是标准,所以我们可以 在有关 SQL 的资源里找到许多额外的信息。
嵌入 SQL 程序主要由一种普通的编程语言代码组成,在我们这个场合中是 C, 并且在其中与一些特殊标记的段混合。要制作这样的程序,源代码首先 经过嵌入的 SQL 预处理器处理,它把源代码转换成普通的 C 程序, 然后这个程序可以用 C 编译工具链进行处理。
嵌入的 SQL 相比于其它的从 C 代码中处理 SQL 命令的优点有几条。首先,它替你照看那些从你的 C 程序中的变量 中传来传去数值的事情。第二,在 C 代码里嵌入 SQL 是定义在 SQL 标准里的,并且被许多其它的 SQL 数据库支持。 PostgreSQL 的实现被设计成尽可能匹配这个标准,并且 通常可以把为其它 SQL 数据库书写的 SQL 移植到 PostgreSQL 中来,反之亦然。
如上所述,为嵌入 SQL 接口写的程序通常是带着 插入进来的特殊代码的 C 程序,这些特殊代码用于执行与数据库相关的 动作。这些特殊代码通常的形式是下面这样:
EXEC SQL ...;
这些语句语法上占据 C 语句的位置。根据具体语句的不同,它们可以出现 在全局环境中或者在一个函数里。嵌入的 SQL 语句遵循 普通 SQL 代码的大小写敏感规则,而不是遵循 C 代码的。
下面的小节都是用来解释所有的嵌入 SQL 语句的。