第 30 章 ECPG - C 中的嵌入式 SQL
目录
本章介绍 PostgreSQL 的嵌入式
SQL 软件包。它可用于
C 和 C++。它由
Linus Tolke(<linus@epact.se>)和 Michael Meskes(<meskes@postgresql.org>)编写。
诚然,本文档相当不完整。但由于这个接口是标准化的,更多相关信息可以在许多关于 SQL 的资料中找到。
30.1. 概念 #
嵌入式 SQL 程序由用普通编程语言(这里是 C)编写的代码与特殊标记区中的 SQL 命令混合组成。要构建程序,源代码首先被交给嵌入式 SQL 预处理器,由它把代码转换成普通的 C 程序,之后就可以用 C 编译工具链处理。
与其他在 C 代码中处理SQL命令的方法相比,嵌入式SQL有其优势。首先,它能处理与你的C程序变量之间来回传递信息的繁琐工作。其次,程序中的 SQL 代码会在构建时接受语法正确性检查。第三,C 中的嵌入式SQL由SQL标准规定,并且得到许多其他SQL数据库系统的支持。PostgreSQL 的实现被设计为尽可能贴合该标准,因此通常可以比较容易地把为其他 SQL 数据库编写的嵌入式SQL程序移植到PostgreSQL。
如前所述,为嵌入式 SQL 接口编写的程序是插入了执行数据库相关动作的特殊代码的普通 C 程序。这种特殊代码总是具有这样的形式
EXEC SQL ...;
这些语句在语法上取代一条 C 语句的位置。根据具体语句的不同,它们可以出现在全局上下文中或函数内。嵌入式 SQL 语句遵循普通 SQL 代码而不是 C 的大小写敏感性规则。
下列小节解释了所有嵌入式 SQL 语句。