注册 登录
编程论坛 PowerBuilder

为什么UPDATE没更新起,又没报错?

SingleLove 发布于 2006-03-29 11:42, 1761 次点击

integer li_return
decimal{4} ldc_concume_money
string ls_room_code,ls_check_no

ls_check_no = is_check_no
ls_room_code = trim(sle_room_code.Text)

if dw_card_consume.GetRow() = 0 then
MessageBox("出错", "当前没有客人消费信息!", Exclamation!)
Return
end if


ldc_concume_money = dw_card_consume.GetItemDecimal(dw_card_consume.GetRow(), "consume_sum")
if ldc_concume_money <= 0 then
MessageBox("提示", "消费金额必须大于零!", Exclamation!)
Return
end if

li_return = f_dw_save(dw_card_consume)
if li_return = -1 then
MessageBox("失败", "房卡消费失败!", Exclamation!)
Return
else
//更新表POS_CHECK_DETAIL的remark字段,放入房间号
update POS_CHECK_DETAIL
set remark = :ls_room_code
where check_no = :ls_check_no
using g_trans;

if g_trans.sqlcode = 0 then
Commit Using g_trans;
else
rollback using g_trans;
MessageBox("出错", "数据库更新失败!", StopSign!)
Return
end if
end if

MessageBox("成功", "房卡消费成功!")
CloseWithReturn(Parent, ldc_concume_money)

整个按钮脚本都贴出来了~为什么update就更新不起????执行也不出错,debug也找不出来 why ?????高手快来解释下!!!!!!!!!!!!!!!!!!!!!!

10 回复
#2
︷順⑦?zì繎2006-03-29 11:49
以下是引用SingleLove在2006-3-29 11:42:00的发言:

//更新表POS_CHECK_DETAIL的remark字段,放入房间号
update POS_CHECK_DETAIL
set remark = :ls_room_code
where check_no = :ls_check_no
using g_trans;

if g_trans.sqlcode = 0 then
messagebox("","") //看一下执行到这儿了没?
Commit Using g_trans;
else
rollback using g_trans;
MessageBox("出错", "数据库更新失败!", StopSign!)
Return
end if
end if

MessageBox("成功", "房卡消费成功!")
CloseWithReturn(Parent, ldc_concume_money)

汗..我还一直都用sqlca呢..你强!!!
我介绍我常用的一种方法吧.我就是判断他upata执行成功了没?
就是用messagebox("","")输出为空
来判断sqlca.sqlcode = 0 成立不?
#3
SingleLove2006-03-29 13:17
你这种方法跟我那句好象没什么区别吧,我前面就象你跟着g_trans.SQLcode = 0 后面写了MessageBox但是也没查出来问题~能报错早就报了~!

[此贴子已经被作者于2006-3-29 13:38:56编辑过]


#4
SingleLove2006-03-29 13:47

按你的方法做了弹了个空的MessageBox对话框,说明是成功了的哦。。。。。可为什么还是没更新起呢?

#5
︷順⑦?zì繎2006-03-29 13:50

执行到了messagebox()?

#6
SingleLove2006-03-29 14:05
对的执行到了~没报错~!
#7
︷順⑦?zì繎2006-03-29 14:46
我也是才学..不晓得!!
#8
SingleLove2006-03-29 15:14
..............
这个问题郁闷我好久了~找又找不到原因!!
#9
SingleLove2006-03-30 17:38

为何PB论坛这么冷清哦~~没几个高手在!

#10
wqk11112006-04-02 14:52
update POS_CHECK_DETAIL
set remark = :ls_room_code
where check_no = :ls_check_no
using g_trans;

你的写法没有问题!

看看 条件 "where check_no = :ls_check_no" 是不是有问题
你可以 把这个SQL单独EXEC一下,并调试一下 "ls_check_no"的取值,
#11
songdeguang2006-04-05 13:16
update POS_CHECK_DETAIL
set remark = :ls_room_code
where check_no = :ls_check_no
using g_trans;

if g_trans.sqlcode = 0 then
Commit Using g_trans;
else
rollback using g_trans;
MessageBox("出错", "数据库更新失败!", StopSign!)
Return
end if
end if

兰色的地方是不是不妥当啊,有点重复的味道

1