网站大量收购独家精品文档,联系QQ:2885784924

C语言采用嵌入式方式操作数据库exec_sql..doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言采用嵌入式方式操作数据库exec_sql.

Exec sql/c【嵌入SQL】 概念: 利用高级语言的过程性结构来弥补SQL语言实现复杂应用方面的不足。 嵌入SQL的高级语言称为主语言或宿主语言。 在混合编程中,SQL语句负责操作数据库,高级语言语句负责控制程序流程。 预编译方法 由DBMS的预处理程序对源程序扫描,识别出SQL语句,把它们转换成主语言调用语句,以使主语言编译器能识别它,最后由主语言编译器将整个源程序编译成目标码。 ☆嵌入式SQL的一般形式 所有的嵌入式SQL语句都必须加前缀EXEC SQL 在C语言中: EXEC SQL SQL语句 例如:EXEC SQL DROP TABLE Student; ☆嵌入式SQL与主语言的通信 1:向主语言传递SQL语句执行状态信息【状态信息】,使语言能够据此信息控制程序流程,用SQL通信区(SQLCA【SQL Communication Area】)实现。 2:主语言向SQL语句提供参数,主要用主变量(Host Variable)实现; 3:将SQL语句查询数据库的结果交主语言进一步处理,主要用主变量和游标(Cursor)实现。 ☆SQL通信区 SQLCA中有一个存放每次执行SQL语句后返回代码的变量SQLCODE。 每次执行完SQL语句后都应该测试一下SQLCODE的值,以了解该SQL语句执行情况并做相应处理,如果SQLCODE等于预定的常量SUCCESS,则表示SQL语句成功,否则在SQLCODE中存放错误代码。 SQLCA(SQL Communication Access) 系由系统提供之系统记录架构,作为back end与 front end 之间沟通之用,当发生 I/O 状态时,系统会记录该状态于SQLCA 中,front end 即可依据其其内容得知 I/O 运作是否成功,再决定往后执行的步骤。SQLCA 为系统定义之 GLOBAL变量,以下为其架构并介绍其内容与用途: SQLCA结构 DEFINE SQLCA RECORD SQLCODE INTEGER, SQLERRM CHAR(71), SQLERRP CHAR(8), SQLERRD ARRAY[6] OF INTEGER, SQLAWARN CHAR(8) END RECORD .SQLCODE 表示 I/O 的结果 ; 返回值 说明 0 表示 I/O 成功 100 表示 NOTFOUND 0 I/O 失败 .SQLERRM :保留未用 .SQLERRP :保留未用 .SQLERRD :为一个含有6个INTEGER数组 SQLERRD[1]:保留未用 SQLERRD[2]:新增时 SERIAL 字段所传回之值 SQLERRD[3]:处理资料的笔数 SQLERRD[4]:查询时预估的 CPU COST SQLERRD[5]:SQL指令之错误位移 SQLERRD[6]:最后一个 ROWID 值 .SQLAWARN :含有8个字符记录I/O时产生的警告讯息 为一个含有8个字符的字符串,以记录I/O时产生的警告讯息。若正确无误,则相对应之字符设定为空白,否则会被设定为W。 SQLAWARN[1]:若第2至第8字符中任意一个被设成W,则此字符亦为W,否则为空白。 SQLAWARN[2]:若资料太长而被截掉时,会被设成 W。 SQLAWARN[3]:若 aggregate function(如 SUM,AVG,MAX,MIN) 处理时遇到 NULL 值,则会被设成W。 SQLAWARN[4]:若查询时,若欲查询的字段数目和 INTO 之变量数目不合时,会被设成 W。 SQLAWARN[5]:如转换 float 成 integer 时,则会被设成 W。 SQLAWARN[6]:保留未用 SQLAWARN[7]:保留未用 SQLAWARN[8]:保留未用 ☆ 主变量 一个主变量既可是输入主变量也可是输出主变量。 主变量必须在SQL语句EXEC SQL BEGIN DECLARE SECTION与EXEC SQL END DECLARE SECTION之间进行说明。 例如: EXEC SQL BEGIN DECLARE SECT

文档评论(0)

xznh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档