这段代码怎么还是不对啊?

xlwz 2003-12-12 09:44:14
string ls_bh, ls_seq,ls_date
datetime ldt_date
int rowno,rowno0=0

select isnull( max(gzsqdbh), 'SG' + string(today(),'yyyymm') + '000' )
into :ls_bh
from t_gzsq
where left(gzsqdbh, 8 ) = 'SG' + string(today(),'yyyymm');

//ls_seq = right( ls_bh, 3 )
ls_seq = right('000'+string( long( ls_bh ) + 1 ), 3 )
//ls_bh = left( ls_bh, 8 ) + ls_seq
do
rowno0++
loop while isnull(dw_1.object.gzsqdbh[rowno0])
rowno=rowno0
dw_1.object.gzsqdbh[rowno] = 'SG' + string(today(),'yyyymm')+ls_seq
dw_1.object.sqrq[rowno] = today()
dw_1.object.sqr[rowno] = "zx"
rowno++
运行是没有从表中找出符合条件的值。
...全文
38 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mittee 2003-12-12
  • 打赏
  • 举报
回复
select isnull( max(gzsqdbh), 'SG' + string(today(),'yyyymm') + '000' )
into :ls_bh
说明ls_bh里面有字母,不能转化为数字
xlwz 2003-12-12
  • 打赏
  • 举报
回复
to lmby
前面一部分本质上是你写的,怎么回出现你说的错误啊?呵呵。。
jlwei888 2003-12-12
  • 打赏
  • 举报
回复
int ff
ff = right( ls_bh, 3 )
if ff<999 then
ls_seq = string(ff+1,"000")
else
messagebox('error','号码错误!')
return
end if
lmby 2003-12-12
  • 打赏
  • 举报
回复
做long( ls_bh )这样转换的前提是 ls_bh isnumber()
xlwz 2003-12-12
  • 打赏
  • 举报
回复
为什么会返回0 啊?
怎么解决啊?
jlwei888 2003-12-12
  • 打赏
  • 举报
回复
ls_seq = right('000'+string( long( ls_bh ) + 1 ), 3 )
有问题

long( ls_bh ) 返回0
workhand 2003-12-12
  • 打赏
  • 举报
回复
select isnull( max(gzsqdbh), 'SG' + string(today(),'yyyymm') + '000' )
into :ls_bh
from t_gzsq
where left(gzsqdbh, 8 ) = 'SG' + string(today(),'yyyymm');

执行完后判断一下sqlcode,看是否为0,不为零看sqlerrortext
cxwsoftware 2003-12-12
  • 打赏
  • 举报
回复
gz!
treesoft 2003-12-12
  • 打赏
  • 举报
回复
在内嵌sql中好象只能用连接的RDBMS中的函数或是过程,而不能使用pb的函数吧……

1,075

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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