正在做个程序,需要在不同的数据库上进行数据转换,两个数据源不在同一台服务器上,而且没有特殊原因都不能关闭机器,程序自动运行。现在需要将Paradox中的数据导到Sqlserver中,下面是我写的一个测试片断,目的是将“测试.DB”文件中的内容导到SQl库中的TestTable中:
try
    if not ADOCon.Connected then
      ADOCon.Open;
    ADOQuery.Close;
    ADOQuery.SQL.Clear;
    ADOQuery.Prepared := False;
    ADOQuery.SQL.Add('delete from TestTable');
    ADOQuery.Prepared := True;
    ADOQuery.ExecSQL;
//Provider=SQLOLEDB.1;Password="";Persist Security Info=True;User ID=sa;Initial Catalog=TESTing;Data Source=192.168.1.172     //这个由ADO自动生成得来
    ADOQuery.Close;
    ADOQuery.SQL.Clear;
    ADOQuery.Prepared := False;
    try
      ADOQuery.SQL.Add('insert into TestTable ' +
        'SELECT ID, Name FROM OpenDataSource('
        + QuotedStr('Microsoft.Jet.OLEDB.4.0') + ','
        + QuotedStr('Data Source="D:\NS2003\DATABASE\";Extended Properties="Paradox 7.x;HDR=Yes;";Password="";Persist Security Info=False') + ')...测试');
      ADOQuery.Prepared := True;
      ADOQuery.ExecSQL;
    except
      ;
    end;
  finally
    FreeandNil(ADOCon);
  end;
错误提示:D:\...不是有效路径,确定拼写正确,以及是否连接到文件存放的服务器。尝试了修改了参数的位置个数等等,查了不少资料,改一些参数后还会出现“不正常地定义参数对像 提供了不一致或不完整的信息”或是“找不到可安装的ISAM”这些错误,总之那句话就是过不去,还请高人指点一二,感激不尽
PS : SQL库的用户名是sa,密码为空,ADOQuery的ParamCheck属性为False