当前位置: 代码迷 >> PB >> 怎么把数据窗口的插入模式变成修改模式
  详细解决方案

怎么把数据窗口的插入模式变成修改模式

热度:77   发布时间:2016-04-29 08:08:20.0
如何把数据窗口的插入模式变成修改模式
各位大虾,我想在数据窗口修改一个表的一个字段,其他的数据不变,我的表的字段有 A,B,C

表里数据有 
我的代码如下:
il_selected_modi_row = dw_1.insertRow(0)
dw_1.scrolltoRow(il_selected_modi_row)
dw_1.selectRow(0, false)
dw_1.selectrow(il_selected_modi_row, true)

然后在数据窗口里 录入A字段的数据后,找出B,然后修给C的数据
Select b
Into :ls_b
From 表
Where A = :data ;
this.setitem(this.GetRow(),"B",ls_b)

if dw_1.update(true, true) <> 1 then
str_err_text = sqlca.sqlerrtext
rollback using sqlca;
  timer(0)
messagebox('提示', "数据存盘失败。" + str_err_text )
else
commit using sqlca;
timer(0)
messagebox('提示', "数据存盘成功!") 
end if

结果老报错,数据保存不了,是不是插入后要改成修改模式,才能保存,请各位大虾指点

------解决方案--------------------
提示的错误是什么?
感觉你的逻辑有问题,为什么要修改时先新増行呢?
------解决方案--------------------
if dw_1.update(true, true) <> 1 then
str_err_text = sqlca.sqlerrtext
rollback using sqlca;
timer(0)
messagebox('提示', "数据存盘失败。" + str_err_text )
else
commit using sqlca;
timer(0)
messagebox('提示', "数据存盘成功!")
end if
这段之前加个数据窗口的 dw_1.accepttext( ) 看看行不
------解决方案--------------------
报列不能为空,就是你的插入行的某一列有空字段咯
------解决方案--------------------
Select b
Into :ls_b
From 表
Where A = :data ;
this.setitem(this.GetRow(),"B",ls_b)


检测 ls_b 是否为空。。。。isnull(ls_b)
  相关解决方案