tempad
Readygo技术搜索引擎 >>游戏开发 >> 为什么我的游标不起作用?

为什么我的游标不起作用?

Readygo技术搜索引擎 网络搜索 efish 2008-1-17 1:59:34

为什么我的游标不起作用?

楼主arthurchi(弛)2002-11-22 20:53:50 在 PowerBuilder / Pb脚本语言 提问

if   (trim(sle_1.text)="")   then  
  messagebox("attention!","请正确填写查询信息")  
  return  
  end   if  
  int   num,n  
  num=integer(trim(sle_1.text))      
  DECLARE   tu   CURSOR   FOR      
  SELECT   "tushu"."书名"      
          FROM   "tushu"      
        WHERE   "tushu"."图书编号"   =   :num        
                        ;  
  open   tu;    
  n=SQLCA.SQLnrows  
   
  if(n=0)   then  
    beep(1)  
    messagebox("attention!","no   this   book")  
    close   tu;  
    return  
  else  
  dw_1.setfilter("图书编号=""+trim(sle_1.text)+""")  
  dw_1.retrieve("图书编号=""+trim(sle_1.text)+""")    
  end   if  
  close   tu; 问题点数:20、回复次数:10Top

1 楼blueswind(大脸狐狸)回复于 2002-11-23 02:16:51 得分 0

干嘛用游标,直接select就得了  
  游标是检索多条记录用的Top

2 楼myclife(反方向的钟)回复于 2002-11-23 14:45:36 得分 0

DECLARE   tu   CURSOR   FOR      
  SELECT   "tushu"."书名"      
          FROM   "tushu"      
        WHERE   "tushu"."图书编号"   =   :num        
                        ;  
   
  不建议使用中文列名,你的声明有问题  
   
  DECLARE   tu   CURSOR   FOR      
  SELECT   tushu.书名      
          FROM   tushu    
        WHERE   tushu.图书编号   =   :num;  
   
  使用  
   
  OPEN   tu;  
   
  Fetch   tu   INTO   :var  
  ............  
  Top

3 楼ice2water(冰冻三尺)回复于 2002-11-23 14:56:00 得分 0

没有fetch,其实使用select语句又简单又快Top

4 楼lsycat()回复于 2002-11-23 14:58:30 得分 0

没有加Fetch   tu   INTO   :var   语句。Top

5 楼hoyu(心茗)回复于 2002-11-23 16:14:44 得分 0

同意   myclife(反方向的钟--忏悔中)Top

6 楼888888888888(888888888888)回复于 2002-11-23 16:39:20 得分 0

同意:两个ice2water(大冰)   、myclife(反方向的钟--忏悔中)    
   
  他们说的都对,看你自己选择。Top

7 楼cooltnt(甜甜粥)回复于 2002-11-23 19:56:18 得分 0

open   tu;    
  改为:open   tu   using   sqlca;试试Top

8 楼whb959358(无名)回复于 2002-11-23 20:40:28 得分 0

why   not   check     SQLCA.sqlcode   value?  
  =0,=100   or   <0Top

9 楼norman211314(IT民工)回复于 2002-11-27 10:23:52 得分 20

兄弟,你少写了两条语句:  
  Fetch   tu   INTO   :var  
   
   
  ////////////////////////////  
  if   (trim(sle_1.text)="")   then  
  messagebox("attention!","请正确填写查询信息")  
  return  
  end   if  
  int   num,n  
  num=integer(trim(sle_1.text))      
  DECLARE   tu   CURSOR   FOR      
  SELECT   "tushu"."书名"      
          FROM   "tushu"      
        WHERE   "tushu"."图书编号"   =   :num        
                        ;  
  open   tu;    
  n=SQLCA.SQLnrows  
   
  /////////////////////////////////  
  Fetch   tu   INTO   :var                             /  
                                                                  /  
  do   while   sqlca.sqlcode   =   0   then   /  
  /////////////////////////////////  
   
  if(n=0)   then  
    beep(1)  
    messagebox("attention!","no   this   book")  
    close   tu;  
    return  
  else  
  dw_1.setfilter("图书编号=""+trim(sle_1.text)+""")  
  dw_1.retrieve("图书编号=""+trim(sle_1.text)+""")    
  end   if  
   
  ///////////////////////  
  Fetch   tu   INTO   :var         /  
  loop                                     /  
  ///////////////////////  
   
  close   tu;  
  Top

10 楼songfrh(我们看海去)回复于 2002-11-27 10:26:48 得分 0

为什么不使用datastore呢Top

责任编辑: efish 参与评论 查找更多:
相关文章
寻求制作DLL的方法 寻求制作DLL的方法
微电,请进,领分! 微电,请进,领分!
在目标机上安装 web应用程序后,web程序无法找到数据… 在目标机上安装 web应用程序后,web程序无法找到数据库myaccess.mdb
谁有.NET版的ERP软件或是办公自动化? 谁有.NET版的ERP软件或是办公自动化?
为什么机子关不了重启不了 为什么机子关不了重启不了
我问题想问,关于芯片与单片机 我问题想问,关于芯片与单片机
请问连接服务器超时怎么实现? 请问连接服务器超时怎么实现?
转贴,非本人观点:自己动手写OS(操作系统)(一) 转贴,非本人观点:自己动手写OS(操作系统)(一)
几道题求解,一定放分! 几道题求解,一定放分!
请问一下从网上DOWN下来的DOMINO5。09 有注册用户限… 请问一下从网上DOWN下来的DOMINO5。09 有注册用户限制吗?如果限制那可最多可以有多少个用户?
2秒记住本站域名

玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的readygo.com.cn

分类导航
Readygo技术搜索引擎