memo1.Clear;
  sql:='SELECT * into f_bSJBM FROM OpenDataSource('+quotedstr('Microsoft.Jet.OLEDB.4.0')+','+quotedstr('Data Source="d:\frdb.mdb";User ID=Admin;Password=;')+')...f_bSJBM';
  edit1.Text:=sql;  ADOQUERY1.Close;
  adoquery1.SQL.Clear;
  adoquery1.SQL.Add('CREATE DATABASE mytest');
  adoquery1.ExecSQL;
memo1.lines.add('建表成功!');
  ADOQUERY1.Close;
  adoquery1.SQL.Clear;
  adoquery1.SQL.Add('use [mytest]');
  adoquery1.ExecSQL;
memo1.lines.add('指定表成功!');
  ADOQUERY1.Close;
  adoquery1.SQL.Clear;
  adoquery1.SQL.Add(sql);
  adoquery1.Open;
memo1.lines.add('复制建表成功!');此方法是想把access的数据转换为SQL SERVER2000(同时将数据复制过去),但可能由于两者部分字段改变了,所以数据添加时总出错(个人估计的原因,但在查询器中直接输入第二行的SQL,可以成功建表与复制表中数据),大家帮我看看,如何修改实现吧!
结果:在MEMO中会输入"出建表成功!"与"指定表成功!"

解决方案 »

  1.   

    楼主如果是要把一个ACCESS数据库导入SQL Server2000中我这有个小函数,不过还不够完善,一会我发给你
      

  2.   

    上次你写过一个,好像有点问题!
    我后来通过建表,再复制数据的方法实现,但还是有点问题!
    insert into tableA select * from openXXX(.....,)的方式实现,但这个SQL语句是不是有字符限制呀!
      

  3.   

    上次那个是不够完善,它要求数据库要已经存在的才能导入。比如说你如果要导入abc这个ACCESS数据库那在SQL中要先建一个abc的数据库在用那个函数导进去。insert into tableA select * from openXXX(.....,)这个方式只能在服务端实现,所以说那个函数有很强的局限性。
      

  4.   

    ACCESS和SQL数据库导换时要注意之间的字段类型!如:时间可能就有出问题!