做了一个窗口 里面包含添加数据控件和刷新控件,其中刷新控件的clicked代码如下 (cb_1是“添加”控件,cb_4是刷新控件)
cb_1.enabled=true
connect using sqlca;
dw_wxjxx.reset()
//dw_wxjxx.settransobject(sqlca)
dw_wxjxx.retrieve()
dw_wxjxx.setfilter("")
dw_wxjxx.filter()
dw_wxjxx.scrolltorow(dw_wxjxx.rowcount())
dw_wxjxx.selectrow(0,false)
dw_wxjxx.selectrow(dw_wxjxx.rowcount(),true)
dw_wxjtjxx.retrieve(dw_wxjxx.getitemnumber(dw_wxjxx.rowcount(),"wxj_id"))
在运行的时候弹出上面标题的文字 DataWindow column type does match GetItem type at line 12 in clicked event of object cb_4 of w_main
错误在哪里啊 各位帮帮忙
------解决方案--------------------
数据类型不匹配,
dw_wxjxx.getitemnumber(dw_wxjxx.rowcount(),"wxj_id"))
有问题,看wxj_id是什么型的,如果是char,用getitemstring(dw_wxjxx.rowcount(),"wxj_id"))
------解决方案--------------------
dw_wxjtjxx.retrieve(dw_wxjxx.getitemnumber(dw_wxjxx.rowcount(),"wxj_id"))
改为
dw_wxjtjxx.retrieve(dw_wxjxx.getitemstring(dw_wxjxx.rowcount(),"wxj_id"))
如果不行,试试
dw_wxjtjxx.retrieve(dec(dw_wxjxx.getitemstring(dw_wxjxx.rowcount(),"wxj_id")))
------解决方案--------------------
retrieve之前,先settransatian(sqlca)retrieve之前,先settransatian(sqlca)
------解决方案--------------------
Database transaction information not available.Call SetTrans or SetTransObject function.
Application terminated.Invalid DataWindow row/column specified at line 12 in clicked event.
答:可能是列名不对,检查一下你的wxj_id在数据窗口中是否存在,并且数据窗口里必须有数据,即rowcount()大于0
还有你需要调用settransobject(sqlca)来设置事务对象
------解决方案--------------------
dw_wxjtjxx.retrieve(dw_wxjxx.getitemnumber(dw_wxjxx.rowcount(),"wxj_id"))
这句代码存在问题。没有进行数据行的判断
除非你保证dw_wxjxx刷新后一定有数据行,如果检索数据后,没有数据行,就会报错的
建议改一下
long ll_RowCount
ll_RowCount = dw_wxjxx.RowCount()
if ll_RowCount>0 then
dw_wxjtjxx.retrieve(ll_RowCount,"wxj_id"))
end if