ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:19.17KB ,
资源ID:2236440      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2236440.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ESQLC培训教材.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ESQLC培训教材.docx

1、ESQLC培训教材ESQL/C编程培训教材1. 概述1.1. SQL语句嵌入方法任何可以交互式输入的SQL语句,例如数据定义语句、数据检索语句、数据控制语句等,都可以嵌入到C程序中。可以使用两种方法指明SQL语句:一种是在SQL语句之前用“$”作为前缀,如:#include main() $ database book; $ delete from book where book_num=100; 另一种是在SQL语句之前使用ANSI标准的EXEC SQL关键字来标识,如:#include main() EXEC SQL database book; EXEC SQL delete from

2、book where book_num=100; 1.2. 宿主变量SQL语句中可以有变量,变量可以出现在交互式SQL语句中常量可以出现的任何位置,SQL语句中的这种变量称为宿主变量。INFORMIX-ESQL/C程序通过宿主变量在C语句和SQL语句中传递数据。一般情况下,在宿主变量前加“:”。如:EXEC SQL update book set book_price = :fNewPrice;在定义宿主变量时也需要使用如下声明语句,EXEC SQL BEGIN DECLARE SECTION; int iNumber;char name10;struct student int no; ch

3、ar name10; stu;EXEC SQL END DECLARE SECTION;另外,宿主变量可以像C语言变量一样用在C语言表达式中,如:EXEC SQL BEGIN DECLARE SECTION; char dbname11;EXEC SQL END DECLARE SECTION;gets( dbname, 80 );EXEC SQL database :dbname;1.3. 头文件INFORMIX-ESQL/C提供了许多头文件,其中最常用的是sqlca.h,它用于确定SQL语句的返回值和SQL语句执行后的其他信息,在ESQL/C程序中是必须包含的,包含方法是“EXEC SQL

4、 include sqlca;”。另外,如果自定义的头文件中包含SQL语句或宿主变量的定义,也必须用同样的方法进行说明,如:EXEC SQL include filename。如果源文件在某个路径下,应将其用引号括起来,如:#include EXEC SQL include sqlca;EXEC SQL include xyz.h;EXEC SQL include /users/test/test.h;1.4. 错误诊断在INFORMIX-ESQL/C程序中执行一条SQL语句时,数据库服务器会返回几种信息,反映SQL语句的执行情况,包括: 该SQL语句的完成状况; 有关性能的信息; 有关可能发

5、生或已经发生的事情的警告。这些返回信息传送到一个称为sqlca的结构中,该结构定义在sqlca.h中:struct sqlca_s long sqlcode; char sqlerrm72; char sqlerrp8; long sqlerrd6; struct sqlcaw_s char sqlwarn0; char sqlwarn1; char sqlwarn2; char sqlwarn3; char sqlwarn4; char sqlwarn5; char sqlwarn6; char sqlwarn7; sqlwarn; sqlca;上述sqlca结构中的信息反映了INFORMI

6、X-ESQL/C语句执行后的情况:成功或异常,其中异常情况包括三种:(1) 执行成功,但没有找到记录;(2) 执行成功,但出现警告信息;(3) 执行结果失败。可通过sqlcode来检测SQL语句的执行结果,其含义如下: sqlcode=0时,说明语句执行成功; sqlcode=100,说明在执行Select或Fetch查找操作后返回零记录,在sqlca.h中将宏SQLNOTFOUND定义为100; sqlcode0时,说明SQL语句执行后有错误发生以下是一个简单的ESQL/C程序:#include EXEC SQL include sqlca;main()EXEC SQL BEGIN DECL

7、ARE SECTION; char fname15; char lname20;EXEC SQL END DECLARE SECTION; int i; printf( This is a ESQL/C Program!n ); EXEC SQL database book; EXEC SQL declare democursor cursor for select fname,lname into :fname, :lname from bookname where lnameC; EXEC SQL open democursor; for( ; ; ) EXEC SQL fetch dem

8、ocursor; if ( sqlca.sqlcode ) break; printf( %s%sn, fname, lname ); $close demecursor; printf( nProgram Over.n );1.5. ESQL/C程序的编译用INFORMIX-ESQL/C语句编写的程序在使用C编译程序之前必须预处理,预处理程序把嵌入的语句转换成C语言程序。INFORMIX-ESQL/C提供了编译命令esql,用来编译INFORMIX-ESQL/C源代码,这些源代码的名称必须具有.ec后缀才能进行转换。转换后的结果存在与源文件同名但后缀为“.c”的文件中,然后调用C编译器将.c

9、文件转换成以.o为后缀的目标文件,最后调用C语言标准库和INFORMIX-ESQL/C库以及用户自己所链接的库生成可执行文件。2. C语言程序中嵌入的SQL语句2.1. 有关数据库和表的权限2.1.1. 选择数据库(DATABASE)功能:DATABASE语句用来选择已存在的数据库,使其成为当前数据库。格式:DATABASE database_name2.1.2. 关闭数据库(CLOSE DATABASE)功能:关闭当前数据库。格式:CLOSE DATABASE2.1.3. 创建表(CREATE TABLE)功能:在当前数据库中建立一张新表。格式:CREATE TEMP TABLE table

10、_name (column_name datatype NOT NULL,)2.1.4. 删除表(DROP TABLE)功能:删除一个已存在的表,以及相关的索引和数据。格式:DROP TABLE table_name2.2. 数据查询语句SELECT数据查询语句SELECT的执行结果有三种情况: 没有满足条件的记录; 返回单个记录; 返回多个记录。前两种情况可以使用单个的SELECT语句,最后一种情况必须使用游标进行查询。格式: SELECT 子句 INTO子句 FROM TableList WHERE FilterJoin GROUP BY ColumnGroupList HAVING Gr

11、oupFilter ORDER BY OrderFilter INTO TERMTable说明: INTO子句 检索出来的数据存放的宿主变量 INTO TEMPTable 将检索处理的结果存在至临时表SELECT如果返回多个记录,必须通过游标方式进行处理。如果返回单条记录,我们将该语句称为单记录SELECT语句,如果有记录返回,sqlca.sqlcode则被设置为0,如果没有满足条件的记录,sqlca.sqlcode则被设置为SQLNOTFOUND,以下是对单记录SELECT语句操作的示例:EXEC SQL BEGIN DECLARE SECTION;char fj11,zh10,xb20;d

12、ouble zhxb;EXEC SQL END DECLARE SECTION;EXEC SQL SELECT fj,zh,xb,zhxb into :fj, :zh, :xb, :zhxb from book where book_num=100;if ( sqlca.slqcode = SQLNOTFOUND ) printf( 没有满足条件的记录n );if ( sqlca.sqlcode = 0 ) printf( 书名:%sn, fj ); printf( 作者:%sn, zh ); printf( 出版社:%sn, xb ); printf( 定价:%.2fn, zhxb );2.

13、3. 插入语句INSERT功能:INSERT语句的主要目的是在表中增加一条或多条新记录。格式: INSERT INTO table_name (ColumnList) VALUES( valuelist )示例: EXEC SQL INSERT INTO Customer( customer_num, fname, lname, company ) VALUES( 0, $Firstname, $Lastname, JOHN CORP );2.4. 数据修改语句UPDATE功能:UPDATE语句用来改变一个或多个记录中的一个或多个字段的值。格式: UPDATE table_name SET c

14、olumn_name=expr,|(column_list)=(expr_list) WHERE condition示例: EXEC SQL UPDATE customer SET (fname,lname)=(:Fname,:Lname) WHERE customer_num=:cust;2.5. 数据删除语句DELETE功能:删除语句DELETE从数据库表中删除一个或多个记录。格式: DELETE FROM table_name WHERE condition示例: EXEC SQL DELETE FROM book WHERE book_num=:booknum;2.6. PREPARE语句功能:PREPARE语句显示地请求对SQL语句进行语法分析。格式: PREPARE statement_name FROM string_spec示例: EXEC SQL PREPARE Del FROM delete from book where boo_num=?; if ( SQLCODE 0 ) / SQLCODE=sqlca.sqlcode printf( prepare Del Error sql

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1