adotable的问题(20分)

  • 主题发起人 主题发起人 seafox
  • 开始时间 开始时间
S

seafox

Unregistered / Unconfirmed
GUEST, unregistred user!
关于adotable控件的使用,要是记录多的话,在增加或删除时有没有必要用adotable2.Active :=false;
adotable2.Active :=true;
例如:with adotable2do
begin
try
open;
append;
edit;
fieldbyname('收费日期').AsDatetime :=datetimepicker1.Date ;
fieldbyname('户号').AsString :=maskedit1.Text ;
fieldbyname('姓名').AsString :=edit2.Text ;
fieldbyname('建筑面积').AsString :=edit4.Text ;
fieldbyname('收费标准').AsString :=dblookupcombobox1.Text ;
fieldbyname('年度').AsString :=dblookupcombobox2.Text ;
fieldbyname('应收供热').Asstring :=edit5.Text ;{(strtoint(edit4.Text)*strtoint(dblookupcombobox1.Text)) ;}
fieldbyname('欠款供热').AsString :=trim(maskedit6.Text) ;
fieldbyname('欠款其他').AsString :=trim(maskedit7.Text) ;
fieldbyname('交款单位').AsString :=trim(edit8.Text) ;
post;
//showmessage('数据已经正确存盘');
application.messagebox('数据已经正确存盘','确认',mb_ok+mb_iconinformation);
adotable2.Active :=false;
adotable2.Active :=true;
 
我认为不用,如果提价一条纪录就打开关闭一次这样会影响速度
 
with adotable2do
begin
try
open;
append;
edit;
//没有必要,如出于安全原因可以保留。
fieldbyname('收费日期').AsDatetime :=datetimepicker1.Date ;
fieldbyname('户号').AsString :=maskedit1.Text ;
fieldbyname('姓名').AsString :=edit2.Text ;
fieldbyname('建筑面积').AsString :=edit4.Text ;
fieldbyname('收费标准').AsString :=dblookupcombobox1.Text ;
fieldbyname('年度').AsString :=dblookupcombobox2.Text ;
fieldbyname('应收供热').Asstring :=edit5.Text ;{(strtoint(edit4.Text)*strtoint(dblookupcombobox1.Text)) ;}
fieldbyname('欠款供热').AsString :=trim(maskedit6.Text) ;
fieldbyname('欠款其他').AsString :=trim(maskedit7.Text) ;
fieldbyname('交款单位').AsString :=trim(edit8.Text) ;
post;
//showmessage('数据已经正确存盘');
application.messagebox('数据已经正确存盘','确认',mb_ok+mb_iconinformation);
adotable2.Active :=false;//
adotable2.Active :=true;//在记录多的情况下,在局域网内造成极大的网络流量
我认为如果要显示所有记录时,就应该先打开数据集,然后进行操作。
只是为了增加则应该 select * from tableName where 1>2 只选出数据集结构来。进行增加
 
adotable2.Active :=false;
adotable2.Active :=true;
目的是刷新数据库,让你立即可以看到你提交的内容
用和不用没有什么。
另,你既然Append了,就不要再Edit了
 
不用,如果你编辑的和显示的用同一个数据源,就不用这么刷新.
如果不同,用adotable2.requary进行刷新就可以了
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部