我编了一小段程序,是从一个ACCESS数据库的两个表中筛选出了一部分数据,希望能将这部分数据存放到另一个数据库中应该怎么做?
现在我是手工先建立一个库,用ADODataSet连接,ADODataSet.CommandText 中使用了select into语句,可是系统总是提示不能返回多个数据集,事实上在数据库中已经有了新表,请问这是怎么回事?万分感谢!

解决方案 »

  1.   

    不是吧。我用都行的。((新表必须不存在
    select * into 新表名 from 表名
      

  2.   

    insert into 新表 select * from 表名
    adodataset1.open;
    按你的方法当然不行,adodataset必须返回一个结果集
    如按你的方法就用adocommand控件吧
      

  3.   

    我是想如果新表不存在就用 select into,如果在,就insert into,因为我需要查询多个数据库,并将结果合并到一个新库中。
      

  4.   

    一些ado版本并不支持select into
    语句来建立新表,
    其实你可以用create table .....
    再select into将数据导入。一样的方便。我就是这样做的很快。
      

  5.   

    TAdoConnection 中有一个方法gettablenames,从这里就可以知道你要的表是不是存在
    我用Ado 2.1,2.5,2.6,2.7都支持select into的,自己试试看
      

  6.   

    动态创建Access
    uses中引用DAO97,而且该单元的路径加入到Search路径中
    Dao97在$Delphi\ocx\active目录,找不到记得搜索一下
    procedure TForm.Button1Click(Sender: TObject);
    var
      MyDBEngine:DBEngine;
    begin
      MyDBEngine:=CoDBEngine.Create;
      MyDBEngine.CreateDatabase('c:\myaccessdb.mdb',';LANGID=0x0804;CP=936;COUNTRY=0;',dbEncrypt);
    end;
    说明
    ;LANGID=0x0804;CP=936;COUNTRY=0; 最前面的;不要删除
      

  7.   

    Sorry,Dao97.pas路径应该在
    X:\Program Files\Borland\Delphi6\Ocx\Servers