执行query1.SQL.Add('insert into "e:\abc.dbf" select * from "h:\abc.dbf"');为何报错:Error creating cursor handle。 急急急。

解决方案 »

  1.   

    你的新表是早就有了的新的空表還是想生成一個新表呢,如果是生成一個新表肯定有問題。生成表查詢是這樣寫的
    select *
    into anothertable
    from table
    where 條件
      

  2.   

    自大生生成一个表create table
      

  3.   

    用两个ADODataSet搞定
    第一个用来查询原表符合条件的记录
    第二个用来连接新表写入数据如果你是用BDE,就用TTable和TQuery搞定它ADODataSet1.DisableControls;
      ADODataSet2.DisableControls;
      try
        ADODataSet1.First;
        while not ADODataSet1.Eof do
          begin
            ADODataSet2.Insert;
            ADODataSet2.FieldByName('name').Value:=ADODataSet1.FieldByName('name').Value;
            ADODataSet2.FieldByName('work').Value:=ADODataSet1.FieldByName('work').Value;
            ADODataSet2.Post;
            ADODataSet1.Next;
          end;
      finally
        ADODataSet1.EnableControls;
        ADODataSet2.EnableControls;
      end;
      

  4.   

    如果在查询的同时要生产表
    select * into new_table[#new_temp_table] from old_table;
    如果已经有了目的表
    insert into table2[(fieldnameList)] select * from table1(此时查询的字段一定要和fieldnamelist相匹配)