急,数据保存问题。(在线等)
我在数据窗口中使用了editchanged,itemchanged,rowfocustchanged等事件,可是用update()保存时,数据库里没有反应,根本就没用保存。是不是使用了以上几个事件后就不能用update()了。请指教,谢谢。 问题点数:0、回复次数:13Top
1 楼pubble(小小)回复于 2005-04-01 15:50:17 得分 0
update和那几个事件没关系,是不是忘了commitTop
2 楼hornbilltofy()回复于 2005-04-01 15:51:54 得分 0
update()之前需要accepttext(),而且你的数据窗在设计时具备update属性.Top
3 楼hornbilltofy()回复于 2005-04-01 15:55:16 得分 0
update()之后还需要commit;Top
4 楼wlgyhnj(冷风伴天月)回复于 2005-04-01 15:57:56 得分 0
1、数据窗口的update属性要设置,tab_order不能为0.
2、dw_.accepttext(),
3、dw_.commit;
Top
5 楼wq187(老爷车)回复于 2005-04-01 15:59:57 得分 0
我在保存按钮中是这样写的:
if dw_main.update() = -1 then
rollback;
messagebox("错误","对不起,保存失败!")
else
commit;
badd=false
end if
messagebox("信息","保存成功!")
而且,我也将数据窗口的row属性的allow update打上对勾了。Top
6 楼tps1980()回复于 2005-04-01 16:11:21 得分 0
上面两位说的确实很对,这个问题是初学者经常会犯的错误.首先你要在菜单选项中将"update属性"设置好可以更新,然后在程序中记得要有accepttext(),不然它没法把现在缓冲中的东西读进来的.建议你在更新之前,先判断更新是不是成功,成功了再提交到数据库不然么rollback一下就行了.Top
7 楼wq187(老爷车)回复于 2005-04-01 16:24:40 得分 0
dw_main.ACCEPTTEXT()
if dw_main.update() = -1 then
rollback;
messagebox("错误","对不起,保存失败!")
else
commit;
badd=false
end if
messagebox("信息","保存成功!")
这样写了,update()、tab ordre属性也改了,可是还不行啊。Top
8 楼ll1982715(雨田)回复于 2005-04-01 16:36:59 得分 0
照你所说的情况!
你是不是数据库没连!Top
9 楼xiao_bai(小白)回复于 2005-04-01 18:13:08 得分 0
1。数据窗口的row属性的allow update打上对勾这是第一步,然后在updateable columns 中选中要更新的列,这步也不可少。
2。debug环境里if dw_main.update() = -1 then 这步设置断点,看看返回值是几。
Top
10 楼limit00()回复于 2005-06-14 17:16:21 得分 0
估计是楼主没有在updateable columns中选择完全要更新的列!Top
11 楼planks(网宇)回复于 2005-06-15 17:25:33 得分 0
dw_main.ACCEPTTEXT()
if dw_main.update() <>1 then
rollback;
messagebox("错误","对不起,保存失败!")
return
else
commit;
badd=false
end if
messagebox("信息","保存成功!")
如果改成这样了,还没有提示,那就是保存的列没有设置.可在其update ...(菜单上的)属性中选需要保存的列及表,关键字.
Top
12 楼wujindong(大虫)回复于 2005-06-18 18:12:05 得分 0
if update(true,true) = 1 then
commit using sqlca ;
else
rollback using sqlca ;
end ifTop
13 楼xchkun(hanxiao)回复于 2005-06-20 12:03:29 得分 0
就这两句,好好检查一下Top




