欢迎来到天天文库
浏览记录
ID:37933987
大小:140.16 KB
页数:50页
时间:2019-06-03
《E-SQL编程技术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、中国农业银行Sybase数据库技术培训——E-SQL/C编程技术王兵wangb@global-tec.net1590118532913671101290北京寰信通科技有限公司BeijingGlobalTechnologyCo.Ltd.2009年6月1日GlobalTechnologyPage1内容提要¾什么是E-SQL¾E-SQL编程基础∑E-SQL一般规则∑建立SQL通信区∑定义变量∑连接数据库∑执行SQL语句∑处理错误¾E-SQL编程专题∑游标的使用∑事物∑动态SQLGlobalTechnologyPage2什么是E-SQL¾EmbeddedSQL是一种数据库客户端编程接
2、口。它在C或C++语言的源程序文件中嵌入SQL命令,通过预处理器把SQL语句翻译成对运行时库(runtimelibrary)的函数调用,然后通过C或C++语言编译器进行编译和连接¾EmbeddedSQL是ISO/ANSI和IBM标准¾EmbeddedSQL可移植到其他数据库和操作系统平台,并且在所有环境下具有相同的功能性。GlobalTechnologyPage3E-SQL优点¾嵌入SQL易于使用¾ANSI/ISO标准化编程语言¾与调用相比,编码更少¾几乎与宿主语言无关,对不同的语言,它的语法改变非常少¾预编译器通过生成存储过程,优化它的执行GlobalTechnologyP
3、age4开发E-SQL应用程序的过程¾编写E-SQL程序¾保存为.cp为后缀的文件(建议)¾预编译¾编译¾连接Client-Library¾如果你选择生成存储过程,执行生成的脚本以在数据库中生成它们(可选)¾运行生成的程序GlobalTechnologyPage5E-SQL编程基础¾E-SQL一般规则¾建立SQL通信区¾使用变量¾连接数据库¾执行T-SQL语句¾处理错误GlobalTechnologyPage6E-SQL一般规则¾以execsql开头¾以;结尾¾标号可以放在execsql前面¾大小写不敏感GlobalTechnologyPage7SQL通讯区¾是一个内存区,用
4、于存放客户端和数据库服务器交互时的状态信息∑数据库服务器执行完每一个EmbeddedSQL语句之后它会在SQL通讯区中存储返回代码和返回信息(包括警告和错误信息)∑E-SQL应用可以从SQL通讯区获得数据库服务器执行EmbeddedSQLs的情况(是成功还是失败)GlobalTechnologyPage8SQL通讯区¾SQL通讯区定义为一个C语言结构typedefstruct_sqlca{charsqlcaid[8];//包含自符串”sqlca”longsqlcabc;//SQLCA结构的长度longsqlcode;//存放最近执行SQL语句的返回代码0:执行成功;-n:发生
5、//错误,n为错误消息号;+100:没有数据存在struct{longsqlerrml;//错误消息长度charsqlerrmc[256];//存放错误消息}sqlerrm;charsqlerrp[8];longsqlerrd[6];//错误或警告的细节charsqlwarn[8];//警告标志charsqlext[8];//保留}SQLCA;GlobalTechnologyPage9SQL通讯区¾SQLCA结构的声明∑EXECSQLINCLUDESQLCA;¾SQLCA的使用∑结构变量名是sqlca,使用C语法访问其成员∑例如:if(sqlca.sqlcode==100){
6、printf("t**Can'tfindtitle'%s'.",m_titleid);return;}if(sqlca.sqlwarn[1]=='W'){fprintf(stderr,"**Datatruncated.");}if(sqlca.sqlwarn[3]=='W'){fprintf(stderr,"**Insufficienthostvariablestostoreresults.");}GlobalTechnologyPage10SQL通讯区¾SQLCODE:SQLCA的替代方法∑不定义SQLCA结构,使用单独定义的SQLCODE也可以得
7、到最近一次查询的返回状态;∑好处V使用SQLCODE的好处是执行速度快∑何时使用V只需要语句的returncode,不需要SQLCA结构中的其它信息∑使用方法longSQLCODE;//0,-n,100execsqlopencursorpub_id;while(SQLCODE==0){execsqlfetchpub_idinto:pub_name;}GlobalTechnologyPage11使用变量¾变量种类∑宿主语言变量(Hostvariables)V使用在E-SQL语句中的宿主语言变量V用于保存从
此文档下载收益归作者所有