CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  PowerBuilder >  非技术版

特简单的DO WHILE 循环,请高手帮我看一下!在线等,解决立即送分!

楼主llkk1979(可怜菜鸟)2004-12-01 14:59:54 在 PowerBuilder / 非技术版 提问

我想往一个mm表里面用游标导入数据,数据源表的取名规则是ttxxxxxx(yymmdd),yymmdd由  
  em_indate1,em_indate2里面取,例如输入2004-01-01至2004-01-04时,则要导tt040101,tt040102,tt040103,tt040104   四个表的数据,但此循环老是实现不了,请高手们指点一下,谢谢!以下是   代码:  
  date   ls_indate1,ls_indate2,ls_enddate  
  string   ls_newsql,tablename  
  integer b  
  long   a  
  ls_indate1   =   date(em_indate1.text)  
  ls_indate2   =   date(em_indate2.text)  
  a   =   daysafter(ls_indate1,ls_indate2)       //返回两个日期段的天数  
  b   =   1     //初始值为1  
  ls_enddate   =   relativedate(ls_indate1,b)         //循环结束日期  
  tablename   =   "tt"   +   right(string(ls_enddate,   "yyyymmdd"),6)   //循环结束时的表名  
  DO   WHILE   b<=a  
  DECLARE   C1   CURSOR   FOR  
  SELECT       aa,        
                    bb,        
                    dd,        
                    ee)      
                    FROM           :tablename    
  OPEN   C1;  
  FETCH   C1   INTO   :aa,        
                    :bb,        
                    :cc,        
                    :dd;  
        DO   WHILE   sqlca.sqlcode   =   0  
  FETCH   C1   INTO   :aa,        
                    :bb,        
                    :cc,        
                    :dd;  
                        INSERT   INTO   mm  
                    (   aa,        
                        bb,        
                        cc,        
                        dd        
                        )      
      VALUES   (   :aa,        
                        :bb,        
                        :cc,        
                        :dd);  
      LOOP  
  CLOSE   C1;  
  b=b+1  
  LOOP 问题点数:20、回复次数:6Top

1 楼braversmmu(笨鸟先飞)回复于 2004-12-01 15:05:31 得分 10

FETCH   C1   INTO   :aa,        
                    :bb,        
                    :cc,        
                    :dd;  
        DO   WHILE   sqlca.sqlcode   =   0  
  在这里已经取出一条记录了,所以你下面  
  INSERT   INTO   mm  
                    (   aa,        
                        bb,        
                        cc,        
                        dd        
                        )      
      VALUES   (   :aa,        
                        :bb,        
                        :cc,        
                        :dd);  
  会少一条Top

2 楼llkk1979(可怜菜鸟)回复于 2004-12-01 15:07:53 得分 0

该如何解决?还请高手指点?Top

3 楼wu_zh2609(蓝色的风)回复于 2004-12-01 15:13:17 得分 5

将  
  Do   While     ....      
  FETCH   C1   INTO   :aa,    
  loopTop

4 楼wu_zh2609(蓝色的风)回复于 2004-12-01 15:17:09 得分 5

可以用动态SQL实现开头的部分,  
   
  具体用法看PB帮助  
  Dynamic   SQL   Format   3   SQL   statementTop

5 楼wu_zh2609(蓝色的风)回复于 2004-12-01 15:18:05 得分 0

PB帮助:Dynamic   SQL   Format   4   SQL   statement  
  Top

6 楼llkk1979(可怜菜鸟)回复于 2004-12-01 15:32:54 得分 0

哦我知道是游标错了,我改正过来了:),但是没法用SQL动态语句实现,因为我连的是两个数据库,ODBC和SQL数据库:(,我知道如果同是SQL数据库的话,我一句INSERT   XX   SELECT   *   FROM   XX就可以了,游标很慢的:(  
  还请哪位位高手帮我看看那个循环有没对啊,呜呜呜,谢谢各位了!Top

相关问题

  • 帮忙看一下,简单的更新问题,在线等待!!
  • 简单问题!高手看一下!在线等候
  • 帮忙看一下简单的select 查询。在线等
  • 一个简单的问题,请大家看一下,谢谢!在线等待。
  • 哪位兄弟熟悉OA,进来看一下,很简单。(在线等...)
  • 一个简单的线程通讯的问题,麻烦看一下!
  • 简单问题。帮忙看一下!
  • 简单程序,帮忙看一下!
  • 挺简单的,请帮助看一下
  • 非常简单,过来看一下?

关键词

  • 数据
  • date
  • indate
  • ls
  • 表
  • tt
  • em

得分解答快速导航

  • 帖主:llkk1979
  • braversmmu
  • wu_zh2609
  • wu_zh2609

相关链接

  • PowerBuilder类图书
  • PowerBuilder类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo