根据服务器上的DB数据库,在本地创建一个临时的表,这样可以提高用户对数据的访问效率,同时也减轻了数据库的访问压力。
创建临时表*.DB
procedure TfUserInfo.createWork;
begin
with tblUserInfo do //页面上的Table控件名子
begin
Active := False;
DatabaseName := 'Userwork';
TableName := 'W_USERINFO.DB'; //要创建的临时表的名字
TableType := ttParadox;
with FieldDefs do //遍历页面(数据为DB Table)中的列,作为临时表的列
begin
Clear;
Add('UserID' , ftString, 6, False); //设置临时表的列、类型、长度
Add('UserName' , ftString, 20, False);
Add('Password' , ftString, 20, False);
Add('Gender' , ftString, 1, False);
Add('Flag' , ftString, 1, False);
Add('Birthday' , ftDate , 0, False);
Add('Dept' , ftString, 20, False);
end;
CreateTable; //创建临时表
end;
tblUserInfo.Close;
tblUserInfo.Open;
while not dbUserMSSQL.ADOQueryUser.Eof do //为临时表填充数据
begin
tblUserInfo.Append;
tblUserInfo.FieldByName('UserID').AsString :=
dbUserMSSQL.ADOQueryUser.FieldByName('UserID').AsString;
tblUserInfo.FieldByName('UserName').AsString :=
dbUserMSSQL.ADOQueryUser.FieldByName('UserName').AsString;
tblUserInfo.FieldByName('Password').AsString :=
dbUserMSSQL.ADOQueryUser.FieldByName('Password').AsString;
tblUserInfo.FieldByName('Gender').AsString :=
dbUserMSSQL.ADOQueryUser.FieldByName('Sex').AsString;
tblUserInfo.FieldByName('Flag').AsString :=
dbUserMSSQL.ADOQueryUser.FieldByName('Flag').AsString;
tblUserInfo.FieldByName('Birthday').AsString :=
dbUserMSSQL.ADOQueryUser.FieldByName('Birthday').AsString;
tblUserInfo.FieldByName('Dept').AsString :=
dbUserMSSQL.ADOQueryUser.FieldByName('Dept').AsString;
tblUserInfo.Post;
dbUserMSSQL.ADOQueryUser.Next;
end;
tblUserInfo.First;
end;