hur.cn - 华软网

 热门搜索

为什么调用update()不能保存??

  作者:未知    来源:网络    更新时间:2018/10/11
各位大侠,我有如下语句:
按下按钮后许标一直不动,好像是死机。请高手帮忙,多谢。

dw_1.settransobject(sqlca)
SQLCA.AutoCommit = True

integer rc 
 rc=dw_1.Update() 
IF rc = 1 THEN 
COMMIT USING SQLCA; 
ELSE 
messagebox('','err')
ROLLBACK USING SQLCA;
END IF
------华软网友回答------
1、还有无其它代码
2、数据窗口有无问题?可手工更新数据窗口试一下
2、单步调试一下看具体哪行出现问题?
------华软网友回复------
表被别人锁住了,更新的时候就象死机一样
------华软网友回复------
请用标准方法:

integer rtn

CONNECT USING SQLCA;

dw_employee.SetTransObject(SQLCA)

rtn = dw_employee.Update()

IF rtn = 1 THEN

        COMMIT USING SQLCA;

ELSE

        ROLLBACK USING SQLCA;

END IF
------华软网友回复------
只要到执行update()函数就死了。下面的代码不能执行。
------华软网友回复------
在DW里的dberror事件里加上MessageBox('Error',sqlerrtext),看看有没有错误提示
------华软网友回复------
dw_1.settransobject(sqlca)
SQLCA.AutoCommit = True //注意:使用autocommit=true后,不应该使用commit和rollback命令,因为任何数据库操作都被自动提交了。

integer rc 
 rc=dw_1.Update() //一般使用update(true,false),尤其是在使用了autocommit=false的情况下。与ResetUpdate ( )联合使用
IF rc = 1 THEN 
COMMIT USING SQLCA; 
ELSE 
messagebox('','err') //一般不在rollback前使用消息框,理由是在消息框被关闭前,数据库会一直被锁住,会影响别人的使用。所以可以考虑把出错提示移到后面去。
ROLLBACK USING SQLCA;
END IF
     
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。