当前位置: 代码迷 >> PB >> pb中施用update后数据未更新?
  详细解决方案

pb中施用update后数据未更新?

热度:17   发布时间:2016-04-29 07:14:14.0
pb中使用update后数据未更新?!
在数据窗口中对鼠标点击的某列columna字段点击右键后弹出消息窗口"是否打印",点击打印后,在数据库表tableA中的print_flag 类型为varchar2(2)置为'Y',但打印后发现还是没有更新到数据库,请问怎么回事?

1.获取某行数据 ls_id = getitemstring(row,"Emp_ID")
2.UPDATE tableA set print_flag = 'Y' where Emp_ID = :ls_id using sqlca;
commit using sqlca;
无论加using sqlca或者commit using sqlca后还是无法更新,请问怎么回事,数据库是oracle10g,谢谢了!
------解决方案--------------------
在数据窗口中对鼠标点击的某列columna字段点击右键后弹出消息窗口"是否打印",点击打印后,在数据库表tableA中的print_flag 类型为varchar2(2)置为'Y',但打印后发现还是没有更新到数据库,请问怎么回事?

1.获取某行数据 ls_id = getitemstring(row,"Emp_ID")
2.UPDATE tableA set print_flag = 'Y' where Emp_ID = :ls_id using sqlca;

//在这里增加一句

messagebox('', sqlca.sqlerrtext) //看一下出错提示
commit using sqlca;
 
肯定是sql出错了,或者没有更新成功
------解决方案--------------------
ls_id = getitemstring(row,"Emp_ID")
UPDATE tableA set print_flag = 'Y' where Emp_ID = :ls_id using sqlca;
if sqlca.sqlcode = 0 then
    commit using sqlca;
else
    rollabck using sqlca;
    messagebox("","数据提交错误,错误信息为:" + sqlca.sqlerrtext)
end if

------解决方案--------------------
ls_id = getitemstring(row,"Emp_ID")
UPDATE tableA set print_flag = 'Y' where Emp_ID = :ls_id using sqlca;
if sqlca.sqlcode = 0 then
   //再判断一下影响行数
     if sqlca.sqlnrows >=1  then 
       commit using sqlca;
     else
     rollabck using sqlca;
  messagebox("","数据找不到行")

     end if 
else
  rollabck using sqlca;
  messagebox("","数据提交错误,错误信息为:" + sqlca.sqlerrtext)
end if
  相关解决方案