c语言 exec sql编程,C语言采用嵌入式方式操作数据库exec_sql.doc
Exec sql/c【嵌入SQL】
概念:
利用高级语言的过程性结构来弥补SQL语言实现复杂应用方面的不足。
嵌入SQL的高级语言称为主语言或宿主语言。
在混合编程中,SQL语句负责操作数据库,高级语言语句负责控制程序流程。
预编译方法
由DBMS的预处理程序对源程序扫描,识别出SQL语句,把它们转换成主语言调用语句,以使主语言编译器能识别它,最后由主语言编译器将整个源程序编译成目标码。
☆嵌入式SQL的一般形式
所有的嵌入式SQL语句都必须加前缀EXEC SQL
在C语言中: EXEC 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< 0I/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 B
c语言 exec sql编程,C语言采用嵌入式方式操作数据库exec_sql.doc相关推荐
- c语言 源程序代码,编程(C语言源程序代码)
编程(C语言源程序代码) 已知 S=1+1/(1+2)+1/(1+2+3)+-+1/(1+2+3+-+N) ,当N的值为50时,求S的值. 要求:按四舍五入的方式精确到小数点后第四位. #includ ...
- jdy40程序C语言,lr脚本编程C语言.docx
lr脚本编程C语言.docx 1.define COUNT 100define SALARY 4000Actionint total;totalCOUNT*SALARY;lr_output_messa ...
- SQL Server 使用Detach和Attach 方式 移动数据库位置
数据库备份和权限等云云的概念就不介绍了, 直接进入主题操作了 环境: 1. 服务器 SQL Server 2005 2. 客户端工具: SQL Server Management Studio 3. ...
- 数据库SQL Server2012笔记(八)——Statement与PreparedStatement的区别,JDBC方式操作数据库...
1.Statement与PreparedStatement的区别 1)都可用于 把sql语句从java程序中发送到制定数据库,并执行sql语句. 2)区别 直接使用Statement,驱动程序一般不 ...
- c语言i o编程,C 语言输入输出 (I/O)
C 语言输入输出 (I/O) 在本教程中,您将学习如何使用scanf()函数从用户处获取输入,并使用printf()函数向用户显示输出. C 语言输出 在C语言编程中,printf()是主要的输出函数 ...
- python语言支持函数式编程_Python语言之Pyhton入门笔记函数式编程
本文主要向大家介绍了Python语言之Pyhton入门笔记函数式编程,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 一,匿名函数 def add(x,y) return x+y ...
- c 语言 结构体 编程,C语言:结构体的编程问题(很简单)
C语言:结构体的编程问题(很简单) 答案:2 信息版本:手机版 解决时间 2020-07-25 02:18 已解决 2020-07-24 02:27 先定义一个结构体Student,它包含四个成员: ...
- c语言的高级编程,C语言高级编程
Q:如何提问,能得到快速的解答? A: 1)标题:撰写标题时,要注意把要问的问题的出处和核心词写出来,最好用[]标出来,比如[第1周编程题在线测试的第1题]求解. 2)内容:内容上要把你不懂的地方说出 ...
- 手机c语言多文件编程,C语言多文件编程
今天,IT培训网小编为大家总结的是C语言,C语言多模块开发(多文件编程). 目前为止,我们编写的大部分C语言程序都只包含一个源文件,没有将代码分散到多个模块中,对于只有几百行的小程序来说这或许可以接受 ...
- 基于c语言测井原始数据编程,C语言对数据库文件的信息压缩
C语言对数据库文件的信息压缩 在信息处理中,信息量越来越大,为节省资源,有必要对所存储的信息进行压缩.下面介绍用C语言实现数据库文件信息压缩的方法. 数据库文件的存储结构中,库结构部分由多个定长字节( ...
最新文章
- 慕课的原型图快速变html,分享一个html转换为pdf 利器 Pechkin
- logging日志配置,day95下午
- gprof + kprof + gprof2dot (性能 与 函数调用图)-
- 非线性方程组求解Matlab实现 (多元牛顿方法、Broyden方法、Broyden方法2)
- SDL及扩展库在ARM-Linux 完整移植
- round四舍五入详解--python2与python3版本间区别
- 为什么计算机的编码那么多,为什么中国剩余定理可用于计算机编码?
- 地域跨度入手的8zsb
- java8(2)函数式接口
- 后台返回整个html转换成页面链接,利用html5的history.replaceState修改当前页面的URL...
- java设计模式--基础思想总结--抽象类与架构设计思想
- MSVCRTD.lib(crtexe.obj) : error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStart...
- ubuntu 16.04 64位 搭建GenieACS
- Fiddler证书过期解决
- 过期系统激活 win7
- go语言读取xls表格xls文件操作替代解决方案
- 解决“UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xd0 in position 493: illegal multibyte sequen“
- 智能头盔 Livall携全球首款智能骑行头盔亮相CES
- MySQL报错:Incorrect string value: '\xE6\x9D\x82\xE8\xB4\xA7...' for column
- 《python编程从入门到实践》第2版 第四章课后练习
热门文章
- JLA服务器性能测试,Shell脚本 | 性能测试之CPU占有率
- Java/JVM垃圾回收机制和算法总结
- java 破解版 aspose-word 切图
- python字符类型是英文_Python中常见数据类型
- linux技术--MySQL分区
- Cryengine5.3
- linux获取本机ip地址函数,Linux编程获取本机IP地址
- iOS应用安全-专栏总目录(持续更新) 丨蓄力计划
- 2019年开发者必读!20位阿里技术大牛们帮你列了一份经典书单!
- python动物农场小说网站爬虫_中文编程,用python编写小说网站爬虫