我如何才能把一个查询结果保存到一个ACCESS表中。
例如查询结果为一个TADODataSet对象ResultSet,表名为为ResultTable

解决方案 »

  1.   

    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可得到你想的结果集。
      

  2.   

    create table ResultTabel(....)
    insert into ResultTable (select field1,field2.... from table)