这相当我的毕业设计,把foxpro中的表转换到sql server中
思路是先读取原表的结构,然后按照它的结构建一个新表,然后才
添加记录。

解决方案 »

  1.   

    写sql语句啊
    先创建table1 
    好像是 query.sql='insert (select * form a.mdb.table1) into table2' 
    大概是这样吧 反正是行得通的
      

  2.   

    var
      dbe:olevariant;
    begin
      ADOC.Connected := False;
      dbe := CreateOleObject('dao.DBEngine.36');  //or 'dao.DBEngine.35'
      dbe.CompactDatabase('.\db\QiQuanDB.mdb','.\backup\'+tempstring,'',0,'');
    end;
      

  3.   

    对不起
    那是我的源码
    你试试这个
    var
      dbe:olevariant;
    begin
      ADOC.Connected := False;
      dbe := CreateOleObject('dao.DBEngine.36');  //or 'dao.DBEngine.35'
      dbe.CompactDatabase('.\表一.mdb','.\表二.mdb',0,'');
    end;
      

  4.   

    楼上的朋友:
    你提供的代码是压缩数据库。我的意思是:只把A.mdb中选择好的表复制到
    B.mdb中去,并不是由A.mdb产生B.mdb,你的意思呢?
      

  5.   

    先在B。MDB中建立和A。MDB中一样的空表,然后写SQL语句啊
    用两个ADOCONNECTION分别连接A。MDB和B。MDB 用两个adoquery来连接数据库,然后写代码:
    adoquery1.Close;
      adoquery1.SQL.Clear;
      adoquery1.SQL.Add('select * from A表');
      adoquery1.Open;
      adoquery1.First;
      adoquery2.Close;
      adoquery2.SQL.Clear;
      adoquery2.SQL.Add('insert into B 表(字段1,字段2) values(:字段1,:字段2)');
      while not adoquery1.Eof do
      begin
      adoquery2.Parameters.ParamByName('字段1').value:=adoquery1.fieldbyname('字段1').value;
      adoquery2.Parameters.ParamByName('字段2').value:=adoquery1.fieldbyname('字段2').value;
      adoquery2.ExecSQL;
      adoquery1.Next;
      end;
      

  6.   

    楼上的朋友:
    如何用一个表建另一个表呢?我试过:create table2 as select * from 
    table1在access中不支持。它应该怎样写呢?
    若建好了空表,就可以采用你的代码了。
    请继续帮助。
      

  7.   

    select * into 表2 from 表1