ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Powerbuilder一些容易被忽略的语法问题

2021-11-24 16:31:26  阅读:149  来源: 互联网

标签:忽略 val Powerbuilder tax 语法 编译 报错 sql 执行


1.检索列与获取列不一致的问题

在执行代码select columnname1,columnname2 into :c1,:c2 from user;时,如果漏写 :c2,编译时并不会报错,但是这句sql执行是有异常的,此时sqlca.sqlcode<>0,debug时会发现sql执行报错“Mismatch between retrieve columns and fetch columns”,即检索列与获取列不一致,导致实际上这里的c1也无法取到值。

注意:写代码时需注意检索列与获取列不一致时,编译检查语法时不会报错提示出来。

2.变量数据类型的问题

dec  val

select tax into :val from price;

dw_1.setitem(1,'tax',val)

以上代码,如果tax的类型为decimal时正常,但如果tax的类型为string,那么,虽然程序执行上没有问题,val也是能取到值,但是这个值无法赋值给tax,tax的值仍为NULL。即PB在执行sql语句时,变量类型不一致,编译不会报错,执行赋值给tax时也不报错,但实际上sql server是无法成功赋值的,导致执行结果仍为NULL。这种问题很不明显,debug时也会以为,没错啊,val有取到值啊,update属性也没问题啊,但是tax就是空值。

注意:写sql语句时要注意对应变量的数据类型,否则编译检查不出来,后续查问题也容易被忽略。

标签:忽略,val,Powerbuilder,tax,语法,编译,报错,sql,执行
来源: https://blog.csdn.net/Sanna_Chan/article/details/121517917

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有