- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第17讲数据库编程
Chapter 8 数据库编程 嵌入式SQL 存储过程 1 嵌入式SQL ESQL:数据库访问的应用程序接口,由嵌入在高级语言中的SQL语句组成; 宿主语言:被嵌入SQL的程序设计语言,如C、C++、Java等。 工作原理 扩展语法 ESQL+VC配置方法 1.1 ESQL工作原理(1) 1.1 ESQL工作原理(2) 混合编程中,SQL语句负责操纵数据库,高级语言语句负责控制程序流程。 数据库工作单元与源程序工作单元之间的通信包括: 1)SQL语句向主语言传递执行状态信息,使主语言能够据此信息控制程序流程,主要用SQL通信区(sqlca)实现; 2)将SQL语句的查询结果交主语言处理,用主变量和游标(CURSOR)实现; 3)主语言向SQL语句提供参数,用主变量(Host variable)实现。 1.2 ESQL语法 在ESQL中,为了区分SQL语句与主语言语句,所有SQL语句都必须加前缀EXEC SQL,并以 ; 结束. EXEC SQL SQL 语句; 1.2.1 SQL通信区 SQL语句执行后,系统要反馈给应用程序若干信息,包括系统当前工作状态和运行环境的各种数据。这些信息将送到sqlca中; sqlca中有变量sqlcode,用于存放返回代码。若为0,则表示SQL语句操作成功;若为非0,则表示操作失败。 SQLCA在应用程序中的定义方法: EXEC SQL INCLUDE sqlca; [补充]sqlca 由 sqlca.h 头文件定义 ,sqlcode中错误代码的定义可在头文件 sqlerr.h 中找到。 1.2.2 主变量 主变量:主变量既可用于ESQL语句,也可用于普通C语句,而一般的C变量则只能用于普通C语句; 分为输入主变量和输出主变量。 指示变量:一个主变量可以附带一个指示变量,它是一个整型变量,当其为负数可用于指示主变量为空。 语法规则: 使用前必须在下列两个语句之间说明: EXEC SQL BEGIN DECLARE SECTION; EXEC SQL END DECLARE SECTION; 在ESQL中使用主变量时,必须加前缀“:” 1.2.3 建立和关闭数据库连接 ESQl程序访问数据库必须先连接数据库。 建立连接的ESQL语句是 EXEC SQL CONNECT TO dbserver.dbname [AS connection-name] USER username.password; 当某个连接上的数据库操作完成后,应用程序应主动释放所占用的连接资源。 关闭数据库连接的ESQl语句有: EXEC SQL DISCONNECT ALL; EXEC SQL DISCONNECT connection_name; EXEC SQL DISCONNECT CURRENT; 1.2.4 游标 一组主变量一次只能存放一条记录对应的信息,仅使用主变量不能完全满足SQL向程序输出数据的要求,因此引入游标的概念。 游标是系统为用户开设的数据缓冲区,存放SQL语句的执行结果。用户可以通过游标逐一获取记录,并赋给主变量,交由主语言进一步处理。 使用游标的步骤(1) 说明游标。为一条SELECT语句定义游标: EXEC SQL DECLARE 游标名 CURSOR FOR SELECT 语句 打开游标。 EXEC SQL OPEN 游标名 打开游标实际上时执行相应的select语句,把查询结果取到缓冲区。这时游标处于活动状态,指针指向查询结果集中的第一条记录。 使用游标的步骤(2) 推进游标指针并取当前记录。 EXEC SQL FETCH 游标名 INTO 主变量[指示变量][,主变量[指示变量]]… 关闭游标,释放缓冲区及其他资源。 EXEC SQL CLOSE 游标名 1.3 ESQL+VC配置方法 嵌入SQL的C应用程序具体到VC++6.0, SQL Server2000 下调试可分为五步: 环境初始化; 预编译; 编译; 链接; 运行。 环境初始化 ??? (1) SQL Server2000为其嵌入式SQL提供了一此特殊的接口;默认的安装方式没有安装此接口; 因此,需要从光盘把devtools文件夹拷贝到SQLServer的系统目录下;如果操作系统安装在C盘,则SQL Server的系统目录是C:\Program Files\Microsoft SQL Server。 (或 在安装Microsoft SQL Server 2000时选择安装Development Tools,为使用嵌入式SQL语言准备必要的头文件和库文件。)????? 环境初始化 ( 2)初始化Visual C++ 6.0编译器环境。在命令行方式下运行文件 D
文档评论(0)