100分,一个小问题,关于DBGRID(或者dbgrideh)。 当我们更改了dbgrideh中的数据时,只要移动下一行,他就会自动更新上一行的数据(数据库中的数据就已经更改了),可是有时候,我想只有让按保存按钮时才让保存,其它时候不保存,应该怎么办.请各位大侠指教. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 procedure TForm1.Button1Click(Sender: TObject);begindatabase1.Commitend;procedure TForm1.DBGrid1CellClick(Column: TColumn);begin database1.StartTransaction;end; 1.定义全局变量 bCanPost: Boolean;2.在数据集控件的beforepost事件里面写代码 if (False = bCanPost) then begin DataSet.Cancel; DataSet.Edit; end; bCanPost := False;3.在保存按钮的点击事件里面 bCanPost := True; ... post; procedure TForm1.Button2Click(Sender: TObject);begin database1.Rollback; //取消end; to : jinjazz我没有用BDE控件,没有database呀。用的是TidyDB。to GoldShield说了,是它自己自动post的呀to lzy6204(想闭门修炼)定义全局变量,有很多个表不是很麻烦?我先试试看。其实想问Dbgrid或Table有没有得到行记录的状态的[dsEdit? dsInsert?]?如果有就好办了。 这个问题很简单,我以前也遇到过,你只需要把你的adoquery的locktype设置成ltBatchOptimistic,然后点击保存按钮只需用adoquery.UpdateBatch()就可以了 如果是ADO的话用LockType:=ltBatchOptimistic就行,该项数据就保存在内存,最后提交就可以了 ADO的话用LockType:=ltBatchOptimistic该项数据就保存在内存 post也不行最后要adoquery要updatebatch;就ok了 问题解决,尤为感谢: lzy6204(想闭门修炼) 方法类似 lzy6204(想闭门修炼) 就不细说了。结帐 c/s架构最大连接数是多少? TMediaPlayer获取播放时间的问题 tchart问题? 其它语言写的dll是否都可以通过delphi调用 如何在程序开始前加入一个密码框,原理是什么?程序要怎么写?最好能有例子. 我当了xpmenu的源码,请问如何把他编译成控件呢? 我用ADO作数据库,请问怎么生成空的Access.MDB文件 constunt.dcu找不到如何解决啊 请问这个方法怎么实现? 用delphi可以实现模仿网页上的操作的功能吗? 关于怎么用decision cube组件? treeview的简单问题
begin
database1.Commit
end;procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
database1.StartTransaction;
end;
bCanPost: Boolean;
2.在数据集控件的beforepost事件里面写代码
if (False = bCanPost) then
begin
DataSet.Cancel;
DataSet.Edit;
end;
bCanPost := False;
3.在保存按钮的点击事件里面
bCanPost := True;
...
post;
begin
database1.Rollback; //取消
end;
我没有用BDE控件,没有database呀。用的是TidyDB。to GoldShield
说了,是它自己自动post的呀to lzy6204(想闭门修炼)
定义全局变量,有很多个表不是很麻烦?我先试试看。其实想问Dbgrid或Table有没有得到行记录的状态的[dsEdit? dsInsert?]?
如果有就好办了。
最后要adoquery要updatebatch;就ok了