该【达梦数据库DM8PROC使用手册D 】是由【祖国的花朵】上传分享,文档一共【131】页,该文档可以免费在线阅读,需要了解更多关于【达梦数据库DM8PROC使用手册D 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。达梦数据库DM8_PROC 使用手册
Service manual of DM8_PROC
前言
概述
本文档主要介绍 DM 对于 PRO__C 的支持,包括 DM 支持的嵌入式 SQL 语法、PRO__C 程序的编写以及dpc_new 工具的使用等。
读者对象
本文档主要适用于DM 数据库的:
开发工程师
测试工程师
技术支持工程师
数据库管理员
通用约定
在本文档中可能出现下列标志,它们所代表的含义如下:
表 标志含义
标志
说明
表示可能导致系统损坏、数据丢失或不可预知的结果。
表示可能导致性能降低、服务不可用。
可以帮助您解决某个问题或节省您的时间。
表示正文的附加信息,是对正文的强调和补充。
在本文档中可能出现下列格式,它们所代表的含义如下:
表 格式含义
格式
说明
宋体
表示正文。
Courier new
表示代码或者屏幕显示内容。
粗体
表示命令行中的关键字(命令中保持不变、必须照输的部分)或者正文中强调的内容。
标题、警告、注意、小窍门、说明等内容均采用粗体。
<>
语法符号中,表示一个语法对象。
::=
语法符号中,表示定义符,用来定义一个语法对象。定义符左边为语法对象,右边为相应的语法描述。
|
语法符号中,表示或者符,限定的语法选项在实际语句中只能出现一个。
{ }
语法符号中,大括号内的语法选项在实际的语句中可以出现 0…N 次(N 为大于 0 的自然
数),但是大括号本身不能出现在语句中。
[ ]
语法符号中,中括号内的语法选项在实际的语句中可以出现 0…1 次,但是中括号本身
不能出现在语句中。
关键字
关键字在 DM_SQL 语言中具有特殊意义,在 SQL 语法描述中,关键字以大写形式出
现。但在实际书写 SQL 语句时,关键字既可以大写也可以小写。
目录
概述 1
功能简介 1
预编译系统的结构与功能 2
预编译系统的结构 2
预编译系统的功能 2
预编译系统的处理流程 3
预编译系统配置 3
预编译系统包含的程序和文件 3
预编译命令的使用方法 3
编译目标代码文件时的编译选项 6
预编译概念 7
嵌入式 SQL 关键概念 7
嵌入式 SQL 语句 7
嵌入式 SQL 语法 8
静态 SQL 与动态 SQL 8
嵌入 PL/SQL 块 9
宿主变量与指示符 9
DM 数据类型 9
宿主数组 10
事务 10
错误与警告 10
开发嵌入式程序的步骤 10
程序编写 10
嵌入式程序的组成 12
一个简单的嵌入式程序结构分析 12
宿主变量的定义 13
声明节语句 14
常规数据类型变量的定义 14
宿主变量的使用 16
VARCHAR 宿主变量的使用 18
游标变量的使用 19
CONTE__T 变量 19
结构宿主变量 19
指针变量 24
可执行的 SQL 语句 24
数据库登录语句 24
数据库退出语句 25
普通 SQL 语句 26
游标语句 27
嵌入式程序中的异常处理 32
数据类型支持 37
编写嵌入式程序的注意事项 39
ORACLE 兼容 41
简单的 ORACLE 嵌入式程序结构分析 41
SQLDA/SQLCA 48
可执行的 SQL 语句 52
预编译命令 OPTION 53
数据类型映射 54
DB2 兼容 56
简单的 DB2 嵌入式程序结构分析 56
SQLDA/SQLCA 58
可执行的 SQL 语句 59
数据类型映射 59
DM 嵌入式 SQL 高级功能 61
SSL 连接 61
PL/SQL 块 62
使用大字段句柄处理 LOB 类型 63
游标变量 68
批量执行 73
SELECT 批量操作 73
INSERT 批量操作 78
UPDATE 批量操作 78
DELETE 批量操作 79
FOR 语法 79
使用结构数组 80
动态 SQL 语句 83
DM 动态 SQL 语句 84
ANSI 动态 SQL 语句 89
多线程支持 96
多线程应用的运行上下文环境 96
上下文的两种使用方式 96
多线程嵌入式 SQL 与指令 96
多线程 PRO__C 程序注意事项 100
PRO__C 与 OCI 环境关联 100
SQLEnvGet 100
SQLSvcCt__Get 101
编写与 OCI 关联的 PRO__C 程序 101
PRO__C 中使用 OCI 实例 103
修改当前连接的自动提交属性 109
PRO__C 程序实例 111
SELECT 语句 111
插入、更新、删除语句 111
插入语句 111
更新语句 112
删除语句 115
日期、时间数据类型的使用 116
多线程 118
附录 PRO__C 错误码汇编 123
概述
本章概要介绍PRO__C 与嵌入式SQL 的基本概念,以及 PRO__C 程序的工作机制即 DM
的预编译系统。
功能简介
SQL 语言作为结构化的查询语言,可以完成对数据库的定义、查询、更新、控制、维护、恢复、安全管理等一系列操作,充分体现了关系数据库的特征。但 SQL 语言是非过程性语言,本身没有过程性结构,大多数语句都是独立执行,与上下文无关,而绝大多数完整的应用都是过程性的,需要根据不同的条件来执行不同的任务。因此,单纯用 SQL 语言很难实现这样的应用。为此,DM 数据库提供了SQL 的两种使用方式:一种是交互方式,另一种是嵌入方式。
嵌入方式是将SQL 语言嵌入到高级语言中,这样一来,既发挥了高级语言数据类型丰富、处理方便灵活的优势,又以 SQL 语言弥补了高级语言难以描述数据库操作的不足,从而为用户提供了建立大型管理信息系统和处理复杂事务所需要的工作环境。在这种方式下使用的SQL 语言称为嵌入式 SQL,而嵌入 SQL 的高级语言称为主语言或宿主语言。DM 数据库允许 C 作为嵌入方式的主语言。在 DM 系统中,我们将嵌有 SQL 语句的 C 语言程序称为PRO__C 程序。
嵌入在主语言程序中的SQL 语句并不能直接被主语言编译程序识别,必须对这些SQL 语句进行预处理,将其翻译成主语言语句,生成由主语言语句组成的目标文件,然后再由编译程序编译成可执行文件,执行该文件,方可得到用户所需要的结果。
DM 的PRO__C 嵌入工作方式支持的功能如下:
支持国家和军用标准关系数据库语言 SQL;
支持嵌入SQL 语言的多模块程序设计;
提供对用户透明的查询优化功能;
支持对远程数据库的访问。
预编译系统的结构与功能
预编译系统的结构
预编译系统的结构如下图所示。
预编译系统
词法分析子系统
语法分析子系统
消息生成模块
图 预编译系统的结构
预编译系统的功能
预编译系统主要包括词法分析、语法分析、消息生成等几个子系统。
词法分析子系统
在嵌入工作方式下,词法分析子系统从指定的主语言源程序中逐段找出嵌入的 SQL 声明节或语句段,将它们进行分解,得到一个个单词,顺序填入单词表,供语法分析时使用; 而对非 SQL 嵌入段的主语言正文则直接写入目标文件。在交互工作方式下,词法分析子系统只需要接受用户输入的单个 SQL 语句或 SQL 语句块,将它们分解成单词串并顺序填入单词表。
语法分析子系统
语法分析子系统在词法分析的基础上,对单词表中所存入的SQL 单词串按 SQL 语言文本进行初步的合法性检查,并对各种单词进行分类,识别语句中的嵌入变量并进行相应的语
法检查。
消息生成模块
在 DM 中,客户端对数据库的操作都是以消息方式传送给数据库服务器,因此预编译系统应具有将 SQL 语句转换为消息的功能,这就是消息生成。消息生成的任务是将SQL 语句翻译成主语言消息生成语句和消息发送及回收语句,并将它们写入目标文件。需要说明的
是,预编译系统并不直接生成消息,而是利用对DPI 接口的函数调用实现,这样可以进行必要的封装,模块性也更强。
预编译系统的处理流程
在嵌入工作方式下,预编译系统的功能是:对嵌入的 SQL 语句段和 SQL 声明节进行全面的词法、语法检查,然后将SQL 语句翻译成主语言语句(即 DPI 函数调用)写入目标文件中,使目标文件成为一个纯由主语言组成的程序。整个预编译的处理流程如图所示:
图 预编译系统的处理流程
预编译系统配置
预编译系统包含的程序和文件
预编译系统提供的软件有:
;
编译时要使用的文件 、、、;若兼容ORACLE,则需另外添加 、、;若兼容DB2,则需另外添加 、;
连接时需要的库文件 (Windows 操作系统)或者
(Linu__);
执行时需要的动态库文件 (Windows 操作系统)或者
(Linu__)。
预编译命令的使用方法
预编译时,在命令提示符窗口中输入带参数的 dpc_new 命令,语法如下:
达梦数据库DM8PROC使用手册D 来自淘豆网www.taodocs.com转载请标明出处.