CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  PowerBuilder >  基础类

问个初级的怪问题

楼主hahahoo()2005-06-01 20:06:51 在 PowerBuilder / 基础类 提问

用PB6.51做一个东西  
  写了一个函数getid()如下  
   
  long   ll  
   
  select   top   1   id  
  into   :ll  
  from   lists  
  using   gtran;  
   
  return   ll  
   
  其中gtran是全局的transcation  
  在一个window中的按钮事件如下  
   
  st_1.text   =   string(getid())  
   
  运行后没有任何反应,如果让getid()直接返回一个数字st_1中能得到正确的值,把getid中的内容直接写道按钮的事件中st_1也能得到正确的值,就是分开不行。  
   
  请问这会是什么问题? 问题点数:50、回复次数:20Top

1 楼lzheng2001(1加1)回复于 2005-06-01 21:01:10 得分 10

select   top   1   id  
  into   :ll  
  from   lists  
  using   gtran;  
  //加上这句测试一下  
  if   gtran.sqlcode   <>   0   then    
        messagebox("test",gtran.sqlerrtext)  
  else  
        messagebox("test",ll)  
  end   if  
  Top

2 楼hahahoo()回复于 2005-06-01 21:32:23 得分 0

没有用,这个messagebox我早就加了,只是没贴出来而已。问题是连messagebox也不弹出来Top

3 楼lzheng2001(1加1)回复于 2005-06-01 22:08:48 得分 5

不可能的,细心检查一下你的代码吧Top

4 楼hahahoo()回复于 2005-06-01 22:46:25 得分 0

我又重新改了一下函数中的代码用于测试。如下  
   
  long   ll;  
   
  select   top   1   iperiod   into   :ll   from   gl_mend   using   gtran_uf;  
   
  ll   =   5;  
   
            messagebox(     "test     ",ll)   ;    
   
  return   ll  
   
  这样的代码运行的时候没有任何反应,包括信息框、返回结果或出错信息。  
  我把中间的select去掉,就没有问题了。这个到底是什么回事,就算数据连接有问题也报个错吧。Top

5 楼njupt_zhb(攒钱买飞机)回复于 2005-06-02 00:04:56 得分 5

比较奇怪了.  
  debug一下看看有没有执行这个函数里面.  
  messagebox不显示是因为参数为null.Top

6 楼princelily(百合)回复于 2005-06-02 07:50:48 得分 10

你自定义事务处理对象gtran_uf的时候,是这样定义的?  
  先在全局变量声明的地方声明了   transaction   gtran_uf  
  然后在application的open事件中写:  
  gtran_uf   =   create   transaction  
  gtran_uf.dbms   =   ……  
  ……  
  一系列数据库连接信息?  
  我觉得是你定义的全局事务处理对象的问题。Top

7 楼princelily(百合)回复于 2005-06-02 07:53:10 得分 0

再有,用PB就要会用DEBUG功能,很强大的纠错工具。  
  你在st_1.text   =   string(getid())  
  前设置个端点,进入调试,看看,进入getid()函数后执行sql语句后,查看全局变量中的gtran_uf.sqlcode的值吧!你会有收获的。Top

8 楼lzheng2001(1加1)回复于 2005-06-02 08:45:56 得分 0

进入debug模式吧,看一下语句有没有运行!   楼主是玩C语主的吧,都已经习惯了用分号了Top

9 楼li_d_s(鄙视那些不懂Java却跑来乱骂的人,.NET没啥了不起)回复于 2005-06-02 09:39:00 得分 0

跟踪Top

10 楼j9dai(翔)(DoItNow)回复于 2005-06-02 10:44:33 得分 5

Debug吧Top

11 楼ghostagain(心情卡片)回复于 2005-06-02 11:59:30 得分 5

messagebox也不弹出来       如果你的LL是空的话就不会弹出来了Top

12 楼gwgok(gwg)回复于 2005-06-02 12:40:02 得分 5

什么鸟问题。Top

13 楼hahahoo()回复于 2005-06-02 17:02:41 得分 0

ll不可能为空,因为我在select后,又再次符值。同样我也认为不是全局变量的问题。因为把这段代码放到函数外面就没有问题。  
  debug模式也很奇怪,我不能设定这段代码的断点。Top

14 楼hahahoo()回复于 2005-06-02 17:17:09 得分 0

大家继续讨论,人人有分,分不够再加Top

15 楼lzheng2001(1加1)回复于 2005-06-02 17:23:35 得分 0

换台机器试试,我估计是你的调用的代码有问题,是否有个同名(相似)的函数!   检查其它PBL中是否有同名的函数!Top

16 楼hahahoo()回复于 2005-06-02 17:57:15 得分 0

没有,新建的项目,呵呵,要不换台机器试试看。Top

17 楼yzip(夏雨飞)回复于 2005-06-02 17:59:21 得分 5

1.判断SQLCODE=   0     ?  
  2.判断返回值isnull(ll_id)?   赋值为零或-1  
   
  Top

18 楼njupt_zhb(攒钱买飞机)回复于 2005-06-02 18:17:39 得分 0

sql语句是不能设断点滴....在它前面设.Top

19 楼hahahoo()回复于 2005-06-03 00:34:24 得分 0

还是奇怪的问题,我只要把这条select语句加上去,整个函数中的任何一行都不能设定断点,把这行select去掉就可以了。真见鬼了。Top

20 楼hahahoo()回复于 2005-06-03 00:46:08 得分 0

总算搞定了,为什么一定要设定Database   profiles,在运行时创建一个transcation不行吗?Top

相关问题

  • 问个初级问题(急)
  • 问一个初级问题
  • 问个初级问题
  • 问几个初级问题
  • 问个VSS初级问题
  • 问几个初级问题
  • 问两个初级问题
  • 问一个初级问题
  • 问一个初级问题。
  • 问一个初级问题!!

关键词

  • 函数
  • 语句
  • 代码
  • debug
  • 信息
  • top
  • gtran
  • 全局
  • uf
  • getid

得分解答快速导航

  • 帖主:hahahoo
  • lzheng2001
  • lzheng2001
  • njupt_zhb
  • princelily
  • j9dai
  • ghostagain
  • gwgok
  • yzip

相关链接

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

广告也精彩

反馈

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