解说声明游标.pptVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
解说声明游标

第13章 游标 13.1 声明游标 13.2 打开游标 ` 13.3 提取数据 13.4 关闭游标 13.5 使用Where子句 13.6 编程实例 * 13.1 声明游标 游标的声明包括两个部分:游标的名称和这个游标所用到的SQL语句。 格式: DECLARE 游标名 CURSOR FOR sql语句; 注意应以分号结束。 如要声明一个叫作Student的游标用以查询家庭地址在南京的学生的姓名、学号及其性别,可以编写如下代码: DECLARE Student CURSOR FOR SELECT name,id,sex FROM student_table WHERE addr=南京; 声明游标的这一段代码行是不执行的,不能将debug时的断点设在这一代码行上,也不能用IF...END IF语句来声明两个同名的游标 。 * 13.2打开游标 游标声明后在作其它操作之前,必须打开它。打开游标是执行与其相关的一段SQL语句。 格式: OPEN 游标名; 例如打开上例声明的一个游标student,只需键入: OPEN student; 由于打开游标是对数据库进行一些SQL SELECT的操作,它将耗费一段时间,主要取决于所使用的系统性能和这条语句的复杂程度。如果执行的时间较长,应该改变屏幕上显示的鼠标。 * 13.3提取数据 用OPEN语句打开了游标并在数据库中执行了查询后,不能立即利用查询结果集中的数据。必须用FETCH语句来取得数据。一条FETCH语句一次可以将一条记录放入程序员指定的变量中。FETCH语句是游标使用的核心。 在DataWindow和DataStore中,执行了Retrieve()函数以后,查询的所有结果全部可以得到。而使用游标,我们只能逐条记录地得到查询结果。 格式: FETCH 游标名 INTO :变量1, :变量2, ..., :变量n; 注意变量前的冒号不可省。 已经声明并打开一个游标后,我们就可以用Fetch将数据放入任意的变量中。 例如: FETCH student INTO :s_name,:s_id,:s_sex; * 13.3提取数据 游标一次只能从后台数据库中读取一条记录。 通过检测SQLCA.SQLCODE的值,可以得知最后一条FETCH语句是否成功。当SQLCODE值为0时,表明一切正常;为100时表示没找到;而其它值均表明操作出了问题。这样我们可以编写以下的代码: fetch student into :s_name,:s_id,s_sex;; do while sqlca.sqlcode = 0 //对读取的记录进行处理 lb_1.additem(s_id1+----+s_name1+”----“+s_sex) ..... //读取下一条记录 fetch student into :s_name,:s_id,s_sex;; loop * 13.4关闭游标 在游标操作的最后不要忘记关闭游标,这是一个好的编程习惯,以使系统释放游标占用的资源。 格式: CLOSE 游标名; 例如:close student; * 13.5使用Where子句 可以动态地定义游标中的Where子句的参数。 DECLARE语句的作用只是定义一个游标,在OPEN语句中这个游标才会真正地被执行。这样我们可以在DECLARE的Where子句中加入变量作参数,如下所示: DECLARE Student CURSOR FOR SELECT name,id,sex FROM student_table WHERE addr=:s_addr; * 13.6编程实例 用游标的方法将数据库stu中的表student的记录显示在窗口上的ListBox中。 创建一个student.pbl,其application为stud;再新建一个w_student窗口,在该窗口上创建一个ListBox名为lb_1、一个单行编辑框sle_1、一个CommandButton名为cb_1。 l 在stud的open事件中输入代码: SQLCA.AutoCommit = True sqlca.DBMS= odbc sqlca.database= sqlca.servername = sqlca.dbparm= Connectstring=DSN=stu;UID=dba;PWD=sql; sqlca.logid= sqlca.logpass= s

您可能关注的文档

文档评论(0)

ranfand + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档