FireDAC.Comp.Client.TFDCustomConnection.Messages

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

property Messages: EFDDBEngineException read GetMessages;

C++

__property Firedac::Stan::Error::EFDDBEngineException* Messages = {read=GetMessages};

Propriétés

Type Visibilité  Source Unité  Parent
property public
FireDAC.Comp.Client.pas
FireDAC.Comp.Client.hpp
FireDAC.Comp.Client TFDCustomConnection


Description

Renvoie une liste de messages renvoyée par le SGBD après une opération de base de données récente.

Lisez la propriété Messages pour obtenir une liste des messages, conseils ou avertissements renvoyés par un SGBD après un appel SGBD récent. La propriété est du type EFDDBEngineException. La définition du contenu dépend du type de SGBD.

DBMS 

Description 

Advantage Database Server 

Aucune

Microsoft Access Database 

Aucune 

Serveur DataSnap 

Aucune 

IBM DB2 

Aucune

InterBase 

Aucune 

Firebird 3.0

Sortie produite par le package FB$OUT

MySQL Server 

Sortie produite par la commande SHOW WARNINGS

Oracle Server 

Sortie produite par le package DBMS_OUTPUT

PostgreSQL 

Remarque et messages d'avertissement 

SQLite 

Aucune 

Sybase SQL Anywhere 

  • Avertissements ODBC
  • Sortie d'une commande MESSAGE

Microsoft SQL Server 

  • Avertissements ODBC
  • Messages de RAISERROR avec une sévérité <= 16, par exemple la sortie d'un appel EXEC sp_configure

 

Les SGBD supportés ne renvoient pas tous automatiquement des messages non liés à des erreurs. Par exemple, pour Oracle, MySQL et FireDACn, il faut appeler une API SGBD supplémentaire pour transmettre les messages à un client. Cela nécessite des aller-retours serveur supplémentaires. Mais pour SQL Server et Sybase SQL Anywhere, les messages sont toujours renvoyés automatiquement. La définition de ResourceOptions.ServerOutput sur True garantit que pour tout SGBD les messages seront automatiquement renvoyés vers le client. Les messages sont stockés dans la liste Messages jusqu'au prochain appel SGBD (Open, ExecSQL, StartTransaction, etc.).

Exemple

var
  i: Integer;
begin
  FDConnection1.ResourceOptions.ServerOutput := True;
  FDQuery1.ExecSQL;
  for i := 0 to FDConnection1.ConnectionIntf.Messages.ErrorCount - 1 do
    Memo1.Lines.Add(FDConnection1.ConnectionIntf.Messages[i].Message);
end;

Voir aussi