pb中在数据窗口中删除主表数据时同步删除从表数据,如何判断sql语句在数据库端是否正确执行了

umbrella / 2023-08-30 / 原文

解决方法:在执行的sql语句后面增加数据库执行判断语句,如下

 1 // 点击保存时遍历主表删除缓存中的总行数,得到每条记录的消息id
 2 for ll_row = 1 to  dw_1.DeletedCount()
 3     ll_mes_id= dw_1.GetItemNumber(ll_row, "mes_id", Delete!, true)
 4     // 执行sql语句,删除从表中对应记录
 5     delete from mes_details where mes_id = :ll_mes_id;
 6     // 判断sql语句在数据库是否正确执行(第一个if是sql执行出错;第二个是执行了但0行受影响)
 7     if SQLCA.SQLCODE <> 0 Then   
 8         ls_error = sqlca.SQLErrText
 9         Rollback;
10         MessageBox("提示","数据删除出现错误1"+ ls_error,StopSign!)
11         return -1
12     End IF
13     IF SQLCA.SQLNROWS = 0 Then 
14         ls_error = sqlca.SQLErrText
15         Rollback;
16         MessageBox("提示","数据删除出现错误2"+ ls_error,StopSign!)
17         return -1
18     End IF
19 end for