当前位置: 代码迷 >> PB >> !关于数据窗口多表数据更新的有关问题
  详细解决方案

!关于数据窗口多表数据更新的有关问题

热度:83   发布时间:2016-04-29 06:58:45.0
求助!!关于数据窗口多表数据更新的问题
代码如下:
int li_ResultUpdate
li_ResultUpdate=dw_1.Update(true,false)  //接受最后一个字段的内容,并且不清楚行修改标志
//如果对xscj_jbxx的表修改成功,下一步修改另一张表xscj_bj
IF li_ResultUpdate=1 then
//首先,关闭对xscj_jbxx表的修改
dw_1.Modify('xscj_jbxx.xh.Update="No"')
dw_1.Modify('xscj_jbxx.xm.Update="No"')
dw_1.Modify('xscj_jbxx.xb.Update="No"')
dw_1.Modify('xscj_jbxx.csrq.Update="No"')
dw_1.Modify('xscj_jbxx.jtzz.Update="No"')
dw_1.Modify('xscj_jbxx.bjbh.Update="No"')
dw_1.Modify('xscj_jbxx.xh.Key="No"')
//使xscj_bj表成为新的可修改表
dw_1.Modify('DataWindow.Table.UpdateTable=~'xscj_bj~'')
dw_1.Modify('xscj_bj.bjmc.Update="yes"')
//修改xscjh_bj表
li_ResultUpdate=dw_1.Update()
IF li_ResultUpdate=1 then
COMMIT USING SQLCA;
ELSE
MessageBox("修改错误!","数据修改错误,错误代码"+String(SQLCA.SqlDBCode)+"~r~n错误原因:"+SQLCA.SqlErrText)
ROLLBACK USING SQLCA;
END IF
//恢复数据窗口开始时的属性,以便下一次用户单击"保存"按钮时,程序能够正确执行
dw_1.Modify('xscj_jbxx.xh.Update="Yes"')
dw_1.Modify('xscj_jbxx.xm.Update="Yes"')
dw_1.Modify('xscj_jbxx.xb.Update="Yes"')
dw_1.Modify('xscj_jbxx.csrq.Update="Yes"')
dw_1.Modify('xscj_jbxx.jtzz.Update="Yes"')
dw_1.Modify('xscj_jbxx.bjbh.Update="Yes"')
dw_1.Modify('xscj_jbxx.xh.Key="Yes"')
dw_1.Modify('DataWindow.Table.UpdateTable=~'xscj_jbxx~'')
dw_1.Modify('xscj_bj.bjmc.Update="No"')
ELSE
MessageBox('Update of xscj_jbxx table failed!','Rolling back changes to xscj_jbxx')
ROLLBACK USING SQLCA
end if

运行时,第一行(int li_resultupdate)和最后一行(end if)报错,提示“syntax error”
请各位大侠帮忙找找错误

------解决方案--------------------
第一个if少了endif吧
------解决方案--------------------
ROLLBACK USING SQLCA少了';'号
  相关解决方案