一个很简单的问题,先回答先得分哦!!
MDI应用中我用childform.create(self)创建子窗口(窗体中有一个dbgrid与数据库相连),第一次创建没有任何问题,当我关闭后并重新创建时,表面上对数据的修改有效,但修改并没有提交到数据库。也就是说,修改后若刷新的话数据仍变回原值。
这是怎么回事?(datasource等组件的允许修改属性都没变,改table的state为dgedit也无效)
问题点数:20、回复次数:10Top
1 楼Kingron(单身走我路……)回复于 2000-12-17 18:24:00 得分 20
有没有用Cache?如果用了的话,要Commit才写入!Top
2 楼KAMI(焦面包)回复于 2000-12-17 18:26:00 得分 0
没有使用cachedupdates属性。Top
3 楼lonelybug(孤独虫子)回复于 2000-12-17 20:38:00 得分 0
你可以加一个TDBNavigator这个控件只要post一下就行了(有这个按钮的)哈哈快乐吧!Top
4 楼guoyuzhang(怒抛头颅)回复于 2000-12-17 21:36:00 得分 0
你好像用CahcheedUpdates属性了吧Top
5 楼KAMI(焦面包)回复于 2000-12-17 21:45:00 得分 0
真的没有啦,我查过cachedupdates,在以上过程中一直是false。Top
6 楼hahafan(注意!此人前途迷茫)回复于 2000-12-18 09:20:00 得分 0
requestlive属性设为true了吗?Top
7 楼linkie(linkie)回复于 2000-12-18 11:05:00 得分 0
我建议你还是用个TDataModual控件,然后在此用个TQuery控件以及TDataBase控件,然后在你的TMDIChild类Uses这个TDataModul,接着你就可以采用TQuery的所有方法来操作数据库了,这样绝对比用TDBGrid要来得安全可靠的,不过要记得每次更新数据是,一定要采用诸如post()、
Transaction.commit()以及try...except等的安全措施的。
Good luck!Top
8 楼KAMI(焦面包)回复于 2000-12-18 13:20:00 得分 0
to hahafan
:requestlive是TQuery的属性吧,我用的是TTable;
to linkie
:谢谢,不过我的这个窗体不需要这么复杂。Top
9 楼KAMI(焦面包)回复于 2000-12-18 19:36:00 得分 0
谢谢各位,我自己解决了。Top
10 楼KAMI(焦面包)回复于 2000-12-18 19:39:00 得分 0
方法是使用cache,鉴于是受了kingron的提醒,给分。Top




