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.

SGBD

Description

Advantage Database Server

Aucune

Microsoft Access Database

Aucune

DataSnap server

Aucune

IBM DB2

Aucune

InterBase

Aucune

Firebird

Aucune

MySQL Server

Sortie de la commande SHOW WARNINGS

Oracle Server

Sortie produite par le package DBMS_OUTPUT

PostgreSQL

Avis 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 severity <= 16, par exemple la sortie d'un appel EXEC sp_configure

Les SGBD supportés ne renvoient pas tous des messages, autres que des erreurs, automatiquement. Par exemple, pour Oracle et MySQL, FireDAC doit appeler une API SGBD supplémentaire pour amener 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 cela, pour tout SGBD, les messages seront automatiquement renvoyés par 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