用QUERY.SQL.AAD('
USE jflmis
GO
BACKUP DATABASE jflmis
   TO disk = 'D:\1.dat'
   WITH FORMAT,
   NAME = 'Full Backup of MyNwind'
GO
')如果成功了,SQL SERVER 有成功的返回值?
预期效果:
从DELPHI的程序发送指令让 SQL SERVER 备份制定的数据库到指定的文件,成功了DELPHI的程序可以提示用户,成功。
该怎么作?

解决方案 »

  1.   

    可以进行异常处理
    try
     Query1.execsql
    exception
      showMessage('备份数据出错');
    end;
      

  2.   

    query可能不报异常的。
    可以用ADOConnection的ConnectionObject.Execute来执行方法,用ConnectionObject.Errors来检索错误信息。
    var
      s: WideString;
      o: OleVariant;
      i: Integer;
      sMsg: string;
    begin
      s := 'USE jflmis BACKUP DATABASE jflmis   TO disk = ''D:\1.dat''  WITH FORMAT, '
        + ' NAME = ''Full Backup of MyNwind''';  i := 0;
      adoconnection1.Connected := true;
      ADOConnection1.ConnectionObject.Execute(s, o, i);
      sMsg := '';
      for i := 0 to ADOConnection1.ConnectionObject.Errors.Count - 1 do
        sMsg :=  sMsg + ADOConnection1.ConnectionObject.Errors.
          Item[i].Description + #13#10;  if sMsg = '' then sMsg := '备份成功';
      showmessage(sMsg);
    end;
      

  3.   

    没有返回值,要是出错 Query1.execsql会触发TDataBaseErr的