var
  sTableName, ErrInfo: string;
begin
try
    dm.ADOConnection1.Connected := False;
    dm.ADOConnection1.Connected := True;
  except
    Application.MessageBox('数据库连接出错!  ', '提示信息', MB_OK or MB_ICONERROR);
    Abort;
  end;
  OpenDialog1.DefaultExt := 'xls';
  OpenDialog1.Filter := 'Excel File|*.xls';
  OpenDialog1.InitialDir := ExtractFilePath(Application.ExeName);
  if OpenDialog1.Execute then
  begin
    try
      adoquery.SQL.Add('delete from salaryinfo');
      adoquery.ExecSQL;
      ADOCommand1.CommandText := 'insert into salaryinfo IN [ODBC]  [ODBC; Driver=SQL Server; UID=sa; PWD=admin791113; Server=itjohnny; DataBase=HR] select * from ['+Trim('salaryinfo')+'$]';
      ADOCommand1.Execute;
      ADOCommand1.ConnectionString := '';
    except
      ErrInfo := '导入数据时出错!'; //导入数据时出错!
      Application.MessageBox('导入数据时出错!', '提示信息', MB_OK or MB_ICONERROR);
      Exit;
    end;
    if ErrInfo = '' then
    begin
      Application.MessageBox('导入数据已完成!', '提示信息', MB_OK or MB_ICONINFORMATION); //导入数据已完成!
    end;
  end;

解决方案 »

  1.   

    加一个adoconnection控件,设置adocommand与adoconnection联接,不要在ADOCommand1的commandtext写。
      

  2.   

         ADOCommand1.CommandText := 'insert into salaryinfo IN [ODBC]  [ODBC; Driver=SQL Server; UID=sa; PWD=admin791113; Server=itjohnny; DataBase=HR] select * from ['+Trim('salaryinfo')+'$]'; 这个,你在sql Server里执行,也是错误的吧。
      

  3.   

    delphi7下可以调试成功,delphi中却没有办法通过啊
      

  4.   

    delphi7可以,但是delphi2010下却不能成功