Data create请参考书籍,太长而且比较复杂。(因为字段的类型有点麻烦....) 速度慢的就一个字段接一个字段的写入 olddata.first; repeat for i:=0 to fields.count -1 do begin newdata.fields[i].value:=olddata.fields[i].value; end; olddata.next; until eof; 快的话就要Batchmove 设置soure和destination数据库,具体的请参考书籍。
VF的数据库能用batchmove 吗?麻烦再解释清楚一点?? 我用SQLExplore 使用ODBC连接VF的数据库(free table)先在SQLExplore用sql语句 操作数据(insert into tableA select * from tableB . tableA和tableB表结构完全一样 )但是visual foxpro driver 无法通过该语句。有没有办法在程序中使用vf的命令直接操作数据库?
Connection1和connection2为两个不同数据库。 在程上添加1个TDatasource, 1个TADODataSet(或其它Dataset)和两个TDBGrid; 比如他们分别是Datasource1,ADODataset1, DBGrid1, DBGrid2. Datasource1的Dataset属性是ADODataset1, DBGrid1的DataSource属性是Datasource1, 一个表为T_User; 创建临时的Datasource2,ADODataset2. Datasource2的Dataset属性是ADODataset2, DBGrid2的DataSource属性是Datasource2, 1. 首先查询数据操: procedure QueryRecord;begin ...... with ADODataset1 do begin Active := False; Connection := Connection1 CommandText := 'Select * from T_User'; Active := True; end; ..... end;Assigned结果集: 声明Public的变量: ADODataset2: TADODataSet; DataSource2: TDataSource;procudure AssignedResultSet;begin Try AdoDataSet2 := TADODataSet.Create(nil); DataSource2 := TDataSource.Create(nil); DataSource2.DataSet := AdoDataSet2 ; DBGrid2.DataSource := DataSource2; with ADODataset2 do begin Connection := Connection2; RecordSet := ADODataset1.RecordSet; end; except DataSource2.Free; ADODataset2.Free; end; end;然后在你用完时的代码上加: DataSource2.Free; ADODataset2.Free; 你可以看到DBGrid2可得到你想的结果集。
速度慢的就一个字段接一个字段的写入
olddata.first;
repeat
for i:=0 to fields.count -1 do begin
newdata.fields[i].value:=olddata.fields[i].value;
end;
olddata.next;
until eof;
快的话就要Batchmove
设置soure和destination数据库,具体的请参考书籍。
我用SQLExplore 使用ODBC连接VF的数据库(free table)先在SQLExplore用sql语句
操作数据(insert into tableA select * from tableB . tableA和tableB表结构完全一样
)但是visual foxpro driver 无法通过该语句。有没有办法在程序中使用vf的命令直接操作数据库?
在程上添加1个TDatasource, 1个TADODataSet(或其它Dataset)和两个TDBGrid;
比如他们分别是Datasource1,ADODataset1, DBGrid1, DBGrid2.
Datasource1的Dataset属性是ADODataset1, DBGrid1的DataSource属性是Datasource1, 一个表为T_User;
创建临时的Datasource2,ADODataset2.
Datasource2的Dataset属性是ADODataset2, DBGrid2的DataSource属性是Datasource2,
1. 首先查询数据操:
procedure QueryRecord;begin
......
with ADODataset1 do
begin
Active := False;
Connection := Connection1
CommandText := 'Select * from T_User';
Active := True;
end;
.....
end;Assigned结果集:
声明Public的变量:
ADODataset2: TADODataSet;
DataSource2: TDataSource;procudure AssignedResultSet;begin
Try
AdoDataSet2 := TADODataSet.Create(nil);
DataSource2 := TDataSource.Create(nil);
DataSource2.DataSet := AdoDataSet2 ;
DBGrid2.DataSource := DataSource2;
with ADODataset2 do
begin
Connection := Connection2;
RecordSet := ADODataset1.RecordSet;
end;
except
DataSource2.Free;
ADODataset2.Free;
end;
end;然后在你用完时的代码上加:
DataSource2.Free;
ADODataset2.Free;
你可以看到DBGrid2可得到你想的结果集。