GBase 8s ESQL/C 是 SQL 应用程序编程接口(API),它使您可以直接在 C 程序中嵌
入结构化查询语言(SQL)语句。
GBase 8s ESQL/C 的预处理器 esql 将每个 SQL 语句和特定于 GBase 8s 的所有代码转
换为 C 语言源代码,并启动 C 编译器进行编译它。
ESQL/C 组件
GBase 8s ESQL/C 由以下软件组件构成:
C 函数的 GBase 8s ESQL/C 库,用于访问数据库服务器。
GBase 8s ESQL/C 头文件,提供数据结构、常量以及对 GBase 8s ESQL/C 程序有用的
宏定义。
esql 命令,
它处理 GBase 8s ESQL/C 源代码以创建一个 C 源文件,
并将它传递给 C 编
译器。
finderr 实用程序
(在 UNIX 系统上)
和 GBase 8s Error Messages 实用程序
(Windows
系统上),用于获得特定于 GBase 8s 的错误消息的信息。
GBase 8s GLS 语言环境和代码集转换文件,此文件提供了特定语言环境的信息。
GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 5 -
有关这些文件的更多信息,请参阅 GBase 8s GLS 用户指南。
用于 Windows 的 ESQL/C 文件
对于 Windows™ 环境,GBase 8s ESQL/C 产品包含下列附加的可执行文件:
Setnet32 实用程序是基于 Windows 的实用程序,用于设置配置文件。
有关更多信息,请参阅 GBase 8s 客户端产品安装指南。
ILOGIN 实用程序是打开带有连接参数字段的对话框的示范程序,它用于测试到数据库服
务器的连接(使用 stores7 数据库)。
有关更多信息,请参阅 GBase 8s 客户端产品安装指南。
ESQLMF.EXE 多字节过滤程序,它将多字节字符串中的转义字符更改为十六进制字符。
这些 GBase 8s ESQL/C 可执行文件位
于 %GBASEDBTDIR%\bin 、%GBASEDBTDIR%\lib
和 %GBASEDBTDIR%\demo 目录下。%GBASEDBTDIR% 变量代表
GBASEDBTDIR 环境变量的值。
ESQL/C 库函数
GBase 8s ESQL/C 库包含一组可用于应用程序的 C 函数。
这些函数可以归为以下几类:
数据类型对齐库函数为不同数据类型的计算机独立大小和对齐信息提供支持,
并协助处
理空数据库值。
字符和字符串库函数提供基于字符的操作,例如比较和复制。
DECIMAL 库函数支持通过十进制结构访问 DECIMAL 值。
格式化函数使您指定不同数据类型的显示格式。
DATE 库函数支持存取 DATE 值。
DATETIME 和 INTERVAL 库函数支持存取通过 datetime 和 interval 结构的值。
错误消息函数为获取和格式化特定于 GBase 8s 的错误消息文本提供支持。
数据库服务器控制函数使您的应用程序实现例如撤销查询和终止连接的功能。
INT8 库函数使您能够通过 int8 结构存取 INT8 值。
智能大对象库函数提供类似于 BLOB 和 CLOB 数据类型的文件。
创建 ESQL/C 程序
创建 GBase 8s ESQL/C 查询:
要在 C 语言源程序中嵌入 GBase 8s ESQL/C 语句,请执行以下步骤:
定义主变量以存储传输于 GBase 8s ESQL/C 和数据库服务器之间的数据。
GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 6 -
通过 SQL 语句访问数据库服务器。
提供 GBase 8s ESQL/C 预处理器和 C 编译器的的伪指令。
使用 esql 命令预处理 GBase 8s ESQL/C 源文件以创建 C 语言源文件和启动 C
编译器。
必要时,改正预处理器和编译器报告的错误,并重复步骤 2。
使用 esql 命令,将编译好的对象代码链接到一个或多个可执行文件。
GBase 8s ESQL/C 源文件包含下列类型的语句:
预处理伪指令
GBase 8s ESQL/C 预处理伪指令创建简单的宏定义,包括 GBase 8s ESQL/C 文件,
并执行附条件的 GBase 8s ESQL/C 编译。
C 预处理伪指令创建宏定义,包括系统和 C 源文件,并执行附条件的 C 编译。
语言语句
GBase 8s ESQL/C 主变量定义存储传输于 GBase 8s ESQL/C 和数据库服务器之间的
数据。
嵌入 SQL 语句以便于数据库服务器通信。
C 语言语句提供程序逻辑。
有关 C 预处理伪指令和 C 语言语句的信息,请参阅 C 编程文本。
GBase 8s ESQL/C 源文件名称可以具有下格式:
esqlc_source.ec
esqlc_source.ecp
GBase 8s ESQL/C 源文件的特定后缀决定了该源文件由 esql 命令编译的默认顺序。.ec
后缀是缺省的后缀。有关 .ecp 后缀和非缺省编译顺序,请参阅 在运行 ESQL/C 预处理
前运行 C 预处理器。