# 第 36 章 ECPG - C 中的嵌入式 SQL

目录

36.1.这个概念

36.2.管理数据库连接

36.2.1.连接到数据库服务器

36.2.2.选择连接

36.2.3.关闭连接

36.3.运行 SQL 命令

36.3.1.执行 SQL 语句

36.3.2.使用光标

36.3.3.管理交易

36.3.4.准备好的报表

36.4.使用主变量

36.4.1.概述

36.4.2.声明部分

36.4.3.检索查询结果

36.4.4.类型映射

36.4.5.处理非原始 SQL 数据类型

36.4.6.指标

36.5.动态 SQL

36.5.1.执行没有结果集的语句

36.5.2.使用输入参数执行语句

36.5.3.执行带有结果集的语句

36.6.pgtypes 库

36.6.1.字符串

36.6.2.数字类型

36.6.3.日期类型

36.6.4.时间戳类型

36.6.5.区间类型

36.6.6.十进制类型

36.6.7.errno pgtypeslib 的值

36.6.8.pgtypeslib 的特殊常量

36.7.使用描述符区域

36.7.1.命名 SQL 描述符区域

36.7.2.SQLDA 描述符区域

36.8.错误处理

36.8.1.设置回调

36.8.2.sqlca

36.8.3.SQLSTATE对比SQLCODE

36.9.预处理器指令

36.9.1.包括文件

36.9.2.define 和 undef 指令

36.9.3.ifdef、ifndef、elif、else 和 endif 指令

36.10.处理嵌入式 SQL 程序

36.11.库函数

36.12.大物体

36.13.C++ 应用程序

36.13.1.宿主变量的范围

36.13.2.使用外部 C 模块进行 C++ 应用程序开发

36.14.嵌入式 SQL 命令分配描述符— 分配一个 SQL 描述符区域连接— 建立数据库连接解除分配描述符— 释放一个 SQL 描述符区域宣布— 定义一个游标声明声明— 声明 SQL 语句标识符描述— 获取有关准备好的语句或结果集的信息断开— 终止数据库连接立即执行— 动态准备和执行语句获取描述符— 从 SQL 描述符区域获取信息打开— 打开一个动态游标准备— 准备执行语句设置自动提交— 设置当前会话的自动提交行为设置连接— 选择一个数据库连接设置描述符— 在 SQL 描述符区域中设置信息类型— 定义一个新的数据类型VAR— 定义一个变量每当— 指定当 SQL 语句引发特定类条件时要采取的操作36.15.Informix 兼容模式

36.15.1.其他类型

36.15.2.附加/缺失的嵌入式 SQL 语句

36.15.3.Informix 兼容的 SQLDA 描述符区域

36.15.4.附加功能

36.15.5.附加常数

36.16.内件

本章介绍 PostgreSQL 的嵌入式 SQL 包。它是由莱纳斯·托尔克 (Linus Tolke) 编写的(<[linus@epact.se](mailto:linus@epact.se)>) 和迈克尔·梅克斯 (<[meskes@postgresql.org](mailto:meskes@postgresql.org)>)。最初它是为与 C 一起工作而编写的。它也与 C++ 一起工作,但它还不能识别所有 C++ 结构。该文档非常不完整。

但由于此接口是标准化的,因此可以在许多有关 SQL 的资源中找到更多信息。