在DBGrid中有a,b,c三个字段,为了能在表格中输入a,b后立即在c中显示计算值,我使用OnCalcFields计算c的值。现在的问题是设置adoquery的locktype为lbbatchoptimistic,cursortype为
ctstatic。在调用batchupdate后a,b,c的值无法在数据库中同时更新,似乎c的值比a,b的更新慢一步,这是为什么呢??请各位达人多指教
ctstatic。在调用batchupdate后a,b,c的值无法在数据库中同时更新,似乎c的值比a,b的更新慢一步,这是为什么呢??请各位达人多指教
解决方案 »
- 怎样用WebBrowser实现自动点击网页中的下载链接并保存到本地进行下载?
- Invalid floating point operation错误如何解决?
- 初学delphi请教,在paradox表中,type中的Alpha类型?各位帮帮忙:)
- 主板序列号问题! 帮帮忙吧!
- 怎样建立索引才算合理?或怎样改善查询速度。
- 请问如何把一个字符串中的*号全部换为#号
- 1)用过《MSN》或《网易泡泡》的人都知道
- 怎样在TEdit的光标当前位置处插入字符
- 如何取得外部程序进度条的位置
- 小妹我想开一个网吧,问题多多请各位热心网友参与!
- 关于建议加强管理,提高结贴率的建议
- 请教为什么我在用循环将某几个表的记录插入到新的表里时总是出现超时
begin
Sender.DataSet.FieldByName('c').AsFloat :=
Sender.DataSet.FieldByName('a).AsFloat +
Sender.DataSet.FieldByName('b).AsFloat ;
end;
其中a、b字段共用这一个过程
你有什么不明白的呢?
你在程序中试一下,即可知道!
如选择ADOQuery1中的A和B字段,然后在其OnChange事件中写代码!
procedure TForm1.ADOQuery1aChange(Sender: TField);
begin
Sender.DataSet.FieldByName('c').AsFloat :=
Sender.DataSet.FieldByName('a).AsFloat +
Sender.DataSet.FieldByName('b).AsFloat ;
end;
即在a,b 字段值改变的时候自动计算c的值: