本页内容为:DELPHI中通过Timer组件批量处理数据,该文章本站转载自网络,如有侵权请告之,我们将会及时将其删除,其正文内容如下:
不过笔者在此要讲的是一种快捷,高效,建议的数据批处理方式..具体代码和操作方式如下:数据库基本的连接代码:
procedure TForm1.FormCreate(Sender: TObject);
var
MyPath:string;
const
MyPassW ='****'; ///数据库密码
begin
MyPath:=ExtractFilePath(ParamStr(0)); ////数据库路径
AdoConnection1.ConnectionString :='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+
MyPath+'db\db.mdb;Jet OLEDB:Database Password='+
MyPassW+';Persist Security Info=False';
///////设置数据引擎并加载密码
ADOConnection1.LoginPrompt := false;
ADOConnection1.Connected := true;
ADOTable1.Connection := ADOConnection1;
ADOTable1.TableName:='tab1';
ADOTable2.Connection := ADOConnection1;
ADOTable2.TableName:='tab2';
try
ADOTable2.Open;
ADOTable1.Open;
DataSource1.DataSet := ADOTable1;
DBGrid1.DataSource := DataSource1;
DBNavigator1.DataSource := DataSource1;
except
MessageBox(0,'无法打开数据库','错误',MB_OK);
end;
/////////////Timer控件控制循环
begin
///////////进行差错控制的异构表的批量数据处理
DataSource2.DataSet.Insert;
ADOTable2.Fields[0].AsString:=ADOTable1.Fields[0].AsString;
ADOTable2.Fields[1].AsString:=ADOTable1.Fields[1].AsString;
DataSource1.DataSet.Next;
if DataSource1.DataSet.Eof = True then timer1.Enabled := false ;
if DataSource1.DataSet.Eof = True then ShowMessage('数据以导入成功!');
except
MessageBox(0,'数据导入失败','错误',MB_OK);
end;
end;
DataModule2.DataSource1.DataSet.Next;//////////此句最为关键,即为循环语句.
插入一条记录的时间(Timer的响应时间)是可以设置的.
这是利用Timer组件的特性.DataSet.Next属性设计而成的异构表之间的数据批量导入功能,
那么删除,更新等功能都有类似代码可以实现(使用DataSource的属性修改即可).
因为有查询功能所以我在开发中利用的是TADOQuery组件,大致方法一样.