Board index » delphi » MS-SQL (PRINT)-Messages in Delphi

MS-SQL (PRINT)-Messages in Delphi

Hello all,
Can anybody told me how to "catch" the "Print" Messages from an MS-SQL
Server?

thanks and regards
Toni

 

Re:MS-SQL (PRINT)-Messages in Delphi


What you mean???

You like to alter the messages in MSSQL, or manipulate in your app??

In my app I do:

In main form:
    procedure CapturaErro(Sender: TObject; E: Exception);

procedure TFormMenu.FormCreate(Sender: TObject);
begin
   Application.OnException:= CapturaErro;
end;

procedure TFormMenu.CapturaErro(Sender: TObject; E: Exception);
  function Traduz_MSSQL(l_Erros: EDBEngineError): String;
  var
    lsi_Cont    : SmallInt;
    lby_Category: Byte    ;
    lin_Native  : Integer ;
    lin_Cod_Erro: Word    ;
  begin
     lby_Category:= 0;
     lin_Native  := 0;
     lin_Cod_Erro:= 0;
     with l_Erros do
       for lsi_Cont:= 0 to ErrorCount - 1 do
         begin
            lby_Category:= Max(lby_Category, Errors[lsi_Cont].Category   );
            lin_Native  := Max(lin_Native  , Errors[lsi_Cont].NativeError);
            lin_Cod_Erro:= Max(lin_Cod_Erro, Errors[lsi_Cont].ErrorCode  );
         end;

     case lin_Native of
       18456: Result:= 'N?o foi possvel conectar com o Banco de
Dados.'+#13+#10+
                       'Login falhou!';
       170  : Result:= 'Erro interno da aplica??o!' +#13+#10+
                       'Este erro ocorre quando alguma instru??o invlida
' +
                       'enviada ao Banco de Dados. Envie o erro para
Suporte.';
       207  : Result:= 'O campo especificado n?o existe!';
       208  : Result:= 'A tabela especificada n?o existente!';
       513  : Result:= 'Valor invlido para o campo!';
       515  : Result:= 'Campo de preenchimento obrigatrio!';
       547  : Result:= 'Impossvel excluir o registro!' +#13+#10+
                       'Outros registros dependem deste.' +#13+#10+
                       MensagemConstraint(l_Erros.Message);
       911  : Result:= 'Nome do banco de dados incorreto ou inexistente!';
       2601 : begin
                 Result:= 'Campo n?o aceita valores duplicados!';
                 if Copy(l_Erros.Message, 60, 7) = 'USUARIO' then
                    Result:= Result +#13+#10+ 'Campo "Nome Reduzido" deve
ser ' +
                    'nico. utilizado para acessar o sistema.' +#13+#10+
                    'J existe um usurio cadastrado com este nome.';
              end;
       2627 : Result:= 'Chave primria violada (Valores duplicados])!';
       6401 : Result:= 'Transa??o n?o iniciada';
       10004,
       10025: Result:= 'Servidor n?o existe ou est indisponvel!';
       0    : case lby_Category of
                39: case lin_Cod_Erro of
                     10014: Result:= 'Alias informado n?o existe!';
                     10019: Result:= 'Valor invlido para este campo!';
                     10036: Result:= 'Usurio ou senha, para conex?o com
Banco ' +
                                     'de Dados, invlidos!';
                    end;
                40: Result:= 'Impossvel alterar o registro!';
              else
                Result:= 'Erro desconhecido do Banco de Dados!';
              end;
     else
       Result:= 'Erro desconhecido do Banco de Dados!';
     end;
  end;
begin
   if E is EDBEngineError then
      begin
         if gst_DatabaseDriver = 'MSSQL' then
            Result:= Traduz_MSSQL(l_ListaDeErros as EDBEngineError);
      end
   else
   if l_ListaDeErros is EDataBaseError then
      begin
         if Copy(l_ListaDeErros.Message, 0, 5) = 'Campo' then
            Result:= l_ListaDeErros.Message
         else
            Result:='Erro nos dados!' +#13+#10+ l_ListaDeErros.Message;
      end
end;

end;

"Toni J.Rosado Fernndez" <JRos...@IBER-Datentechnik.de> escreveu na
mensagem news:3b544db1_1@dnews...

Quote
> Hello all,
> Can anybody told me how to "catch" the "Print" Messages from an MS-SQL
> Server?

> thanks and regards
> Toni

Other Threads