FireDAC.Comp.Client.TFDCustomConnection.Messages
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 |
|
Microsoft SQL Server |
|
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;