pb11.5或pb12.5中sql语句的奇怪问题?

lqhly 2014-11-04 03:16:03
我的系统:xp-sp3、sqlserver2008、pb11.5 或pb12.5,通过odbc连接数据库。
我在做一个单据的自动增加时遇到了一个郁闷、奇怪的现象,不知道是什么原因,请求各位大侠救助。
order_no 单据号格式为年+月+日+2位流水号,比如14年11月04日 + 01即:14110401
我把'14110401%'存到一个字符串变量order_no_t中
保存成功后,在添加第二张单据时,单据号不能自动增加。经过调试跟踪发现是:
select max(order_no) into :order_no_max from t_order where order_no like :order_no_t;
这个语句执行后order_no_max = null而不是想要的'14110401’
而我直接用'14110401%'代替变量order_no_t 时结果却是正确的'14110401‘即
select max(order_no) into :order_no_max from t_order where order_no like ‘14110411%’
我还以为是pb115的版本出来问题,然后我升级到pb12,5问题还是一样的。请问高手们到底是什么原因造成的这样奇怪的结果?



...全文
379 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lqhly 2014-11-08
  • 打赏
  • 举报
回复
好像是odbc的问题,我后来用ole db连接数据库就没有这个问题了
laoer_2002 2014-11-05
  • 打赏
  • 举报
回复
用'14110401%'代替变量order_no_t order_no like ‘14110411%’好像这两个不一样
sdhp 2014-11-05
  • 打赏
  • 举报
回复
谨慎的怀疑你SQL执行之前order_no_t参数值不对或者是null
jinyaoyu_79 2014-11-04
  • 打赏
  • 举报
回复
是不是%出现我问题呢。你可以先试一下order_no_t = ‘14110401’ ,再order_no_t = order_no_t + '%',再select max(order_no)等等。
WorldMobile 2014-11-04
  • 打赏
  • 举报
回复
引用 楼主 lqhly 的回复:
我的系统:xp-sp3、sqlserver2008、pb11.5 或pb12.5,通过odbc连接数据库。 我在做一个单据的自动增加时遇到了一个郁闷、奇怪的现象,不知道是什么原因,请求各位大侠救助。 order_no 单据号格式为年+月+日+2位流水号,比如14年11月04日 + 01即:14110401 我把'14110401%'存到一个字符串变量order_no_t中 保存成功后,在添加第二张单据时,单据号不能自动增加。经过调试跟踪发现是: select max(order_no) into :order_no_max from t_order where order_no like :order_no_t; 这个语句执行后order_no_max = null而不是想要的'14110401’ 而我直接用'14110401%'代替变量order_no_t 时结果却是正确的'14110401‘即 select max(order_no) into :order_no_max from t_order where order_no like ‘14110411%’ 我还以为是pb115的版本出来问题,然后我升级到pb12,5问题还是一样的。请问高手们到底是什么原因造成的这样奇怪的结果?
应该是你那个地方弄错了,建议你仔细检查,把order_no_t换成ls_no,值为1411%试试
A啦Dbit 2014-11-04
  • 打赏
  • 举报
回复
select 前检查一下 order_no_t的值,是否'11041101%' ,应该不会有这bug 另外再检查一下sqlca.sqlcode
lqhly 2014-11-04
  • 打赏
  • 举报
回复
引用 1 楼 opet98765 的回复:
不要在代码中直接写SQL去查询。把SQL转化为dw,去retrieve出来,再处理。
不会吧,我以前用pb8的时候都是这么处理的,你难道一条sql语句都不敢在代码中写吗?
qq_1919561306 2014-11-04
  • 打赏
  • 举报
回复
不要在代码中直接写SQL去查询。把SQL转化为dw,去retrieve出来,再处理。
PB12.5版本: 关于PBHelper(PBCOMMENT)这个软件,最新版本 1.0.2 PBHelper的前身是 PBCOMMENT 7.0。 ================================================================ 版权所有 (c) 1999-2000 RC Sizer 保留所有版权。 版权所有 (c) 2003-2006 Welkin 保留所有版权。 版权所有 (c) 2002-2006 TRUEWAY(TM) 保留所有版权。 注册商标 TRUEWAY(TM) 为李群巍所写程序专用。 PBHelper以前的名字叫 PBCOMMENT。 PBHelper(PBCOMMENT)是一个专门为PB程序员设计的综合性编程 助手工具。她能帮助PB程序员自动生成PB脚本代码注释、自动缩进美化 代码、自动完成代码、大小写转换,实现不同数据库类型之间的SQL语句 转换等功能。 PBHelper支持PowerBuilder 6.x/7.0/8.0/9.0/10.0/10.5/11.0。 (增加对11.5、12.0、12.5的支持) 关于此软件的英文详细说明,请阅读《readme.txt》。 联系方法: E-Mail: truewaylee@163.com, wolcen@sohu.com MSN: truewaylee@hotmail.com 软件包下载地址: http://gforge.osdn.net.cn/projects/pbhelper/ PBHelper(PBCOMMENT)的来历 ================================================================ PBHelper起初的代码参考了国外一个著名的 PBCOMMENT 软件。国外 的这个 PBCOMMENT 对 PB 6.0/6.5 和 PB 7.0 分别做了实现。初期的 版本主要用于自动生成函数、对象、DW内部代码的注释。后来,本人 对该软件核心代码做了重写工作,且在一个版本的 PBCOMMENT 里面 提供了对不同版本PB的支持。 从 PBCOMMENT 3.0 开始,在后续的版本,加入了代码自动整理 (Indent)、自动完成(插入DW编码模板)、自动删除(根据某个标记) 自动删除某个标记前面的或者后面的代码,从DW自动生成DW字段赋值语句、 从DW生成结构体等的辅助功能。从这些功能的增加来看,PBCOMMENT 已 不再是 COMMENT 的工具。有鉴于此,从 PBCOMMENT 7.0 以后软件名字 更改为 PBHelper。因为 PBHelper 不再仅仅关注于注释方面,而向功能 综合化、多样性方面发展。 PBHelper(PBCOMMENT)重要版本更新 ================================================================ 开始版本号 新增功能 ---------------------------------------------------------------- PBCOMMENT >>>>>>>>>> 5.2 可以处理 *.sr* 类型的文件的整理处理 将对象、窗口、函数等代码先 Export 成文本文件,在PB 用编辑文本文件的形式打开,然后象其他脚本一样 Indent 5.2 新增自动将工具集成到 PB 开发环境的功能 目前支持的版本是 PB 6.0/6.5, PB 9.0 5.3 新增自动在某个代码段加每行代码的相同的前缀或者相同的后缀 这个在我们日常生活经常要用到的 5.31 新增自动根据字段列表,变量列表,datawindow 赋值语句列表, 自动生成 datawindow 之间复制数据的代码 自动生成 结构体变量 和 datawindow 之间的赋值代码 自动生成 变量列表 和 datawindow 之间的赋值代码 具体可看 《pbcomment自动写代码.doc》的说明 5.31 新增双语言显示 pbcomment.ini 文件, language = 0 表示简体

754

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧