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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

18在ESQLC程序中使用插入游标.docx

1、18在ESQLC程序中使用插入游标第十八章在ESQL/C程序中使用插入游标本章介绍在INFORMIX-ESQL/C程序中定义和使用插入游标。有两种方法可以向数据库中添加记录:一次添加一条记录或一次添加多条记录。INSERT语句允许向数据库中插入一个记录。如果把INSERT语句放在循环中,用户可以向数据库插入多条记录,但是,对于每一次循环INSERT语句只执行一次。每次执行INSERT语句时,设置_sqibind结构,并把该结构包的内容送往数据库服务器,在那里进行I/O操作。如果有许多的记录要添加到表中,送往数据库服务器的结构包的数量和I/O操作的数目可能极大地影响系统的性能。由于这个原因,通常

2、的INSERT语句无法提供一种对表进行多记录插入的灵活办法。如果INSERT语句可以把多个记录存放到一个缓冲区中,然后把缓冲区(一个包)送往数据库服务器进行一次“大”的插入,则该问题就被解决了。实际上,可以使用INFORMIX-ESQL/C的插入游标完成该项功能。插入缓冲区在通过INFORMIX-ESQL/C设置时,是依赖于系统的,而且它的大小不能改变。在一般情形里,它从1k和记录大小两者中取一大值。同插入游标相关联的语句有五个: DECLARE OPEN PUT FLUSH CLOSE这些语句将在后面讨论。DECLARE语句用来同INSERT语句相关联。如果有VALUES子句,它还绑定宿主变

3、量的类型、大小和地址。该语句必须出现在任何对游标的引用之前,如果没有这样做,编译时会出错或给出警告信息。OPEN语句完成下面的工作: 发送消息给服务器,让它检查INSERT语句中表和字段的合法性。- 是否有一个名称为manufact的表?- 要插入值的字段是否都属于该表?- 是否有权限插入记录?- 在数据段中打开插入缓冲区。 如果游标已经打开,又对同一个游标执行OPEN语句,即试图重新打开游标,INFORMIX-ESQL/C写缓冲区中的内容,并重新初始化游标结构。全局变量sqlca.sqlerrd2的值被设置为实际插入到数据库中的记录的数目。 可能已经注意到用于INSERT语句的OPEN语句的

4、语法,同用于所有三种类型的SELECT游标:一般的、加锁的和滚动的一样。使用PUT语句,可以把一个记录存放到INSERT缓冲区,以后再插入到数据库表中。全局变量sqlca.sqlcode和sqlca.sqlerrd2指明每次PUT语句执行的结果。 如果INFORMIX-ESQL/C仅把一个记录存放到插入缓冲区,它把sqlca.sqlcode和sqlca.sqlerrd2的值都设置为0。 如果由于执行了PUT语句,使INFORMIX-ESQL/C进行一个FLUSH操作,并成功地把一组(整个缓冲区)记录插入到数据库中,则sqlca.sqlcode的值设置为0,而sqlca.sqlerrd2的值设置

5、为所插入记录的数目。 如果由于执行了PUT语句,使INFORMIX-ESQL/C进行一个FLUSH操作,并试图把整个缓冲区的记录插入到数据库中,但是操作不成功,则sqlca.sqlcode的值设置为负值(特别地,设置为错误信息的号码),而sqlca.sqlerrd2的值设置为成功插入到数据库中的记录的数目。在上次成功插入记录之后的缓冲区中的记录被丢弃。使用FLUSH语句使得INFORMIX-ESQL/C把缓冲区中的记录插入到数据库中,而不关闭游标。 可以使用FLUSH语句强迫进行插入操作。但是,无法通过不使用FLUSH语句来延迟插入,因为缓冲区满了,INFORMIX-ESQL/C会自动腾空缓冲

6、区。 全局变量sqlca.sqlcode和sqlca.sqlerrd2指明每次FLUSH语句执行的结果。如果INFORMIX-ESQL/C成功地把缓冲区里的记录插入到数据库中,它把sqlca.sqlcode的值设置为0,而把sqlca.sqlerrd2的值设置为所插入记录的数目。如果INFORMIX-ESQL/C试图把缓冲区里的记录插入到数据库中,但是操作不成功,它把sqlca.sqlcode的值设置为负值(特别地,设置为错误信息的号码),而把sqlca.sqlerrd2的值设置为成功插入到数据库中的记录的数目。退出程序之前如果没有关闭游标,则缓冲区的内容不会写入到数据库中。自从上次FLUSH

7、操作(不论是显式的还是隐式的操作)以来写入到缓冲区中而且仍保存在里面的记录会丢失。不要期望程序结束时会关闭缓冲区并把缓冲区中的内容写到数据库中。CLOSE语句腾空缓冲区,并使INSERT游标和INSERT缓冲区失效。缓冲区内存被释放。使用FREE语句释放游标结构占用的空间:$free insert_buf; 全局变量sqlca.sqlcode和sqlca.sqlerrd2指明每次CLOSE语句执行的结果。 INFORMIX-ESQL/C没有提供全局变量来记录由INSERT游标成功插入到数据库中的记录的数目。如果想知道所插入记录的总数目,必须在程序中设置一个计数器,并在执行每次PUT语句时,增加计数器的值。 在使用INSERT游标之前必须先用DECLARE语句来定义它。 使用DECLARE语句定义游标后,用OPEN语句打开它。 一旦打开了INSERT游标,就有了INSERT缓冲区,可以用PUT语句把数据放入INSERT缓冲区。 FLUSH语句是可选择的,通常与条件语句一起使用。 把数据插入到数据库完毕之后,使用CLOSE语句关闭INSERT游标,以确保所有存放在INSERT缓冲区里的数据被插入到数据库中,并释放INSERT缓冲区占用的空间。

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

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