Bonjour à tous,
Je souhaiterais avoir de plus amples informations concernant la compatibilité d'un TClientDataSet avec un TFDMemTable.
Chacun d'eux possède une propriété XMLData, qui selon la documentation Embarcadero, "est utile pour la compatibilité de TClientDataSet" et TFDMemTable.
En quelques sortes, je cherche à transférer les données TClientDataSet.Data vers TFDMemTable.Data
Cela n'étant pas possible directement (de part leur façon de stocker leurs données différemment en mémoire), je décide donc de passer par la propriété XMLData et donc de faire:
FDMemTable.XMLData := ClientDataSet.XMLData
Malheureusement cela génère une erreur lors de l'écriture de la propriété XMLData:
Classe d'exception EFDException avec un message '[FireDAC][Stan]-712. Impossible de lire l'objet [Manager]'.
Sauriez-vous me dire comment résoudre cette erreur ?
Ai-je manqué quelque chose ? Faut-il que je définisse quelque part un TFDDatSManager ? Si oui, comment ?
Merci d'avance pour votre aide.
Pour être un peu plus précis, voici mon code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
type
TForm3 = class(TForm)
btn_cds_to_fdmt: TButton;
SQLConnection1: TSQLConnection;
SQLDataSet_CCOS: TSQLDataSet;
DataSetProvider: TDataSetProvider;
FDStanStorageXMLLink1: TFDStanStorageXMLLink;
ClientDataSet: TClientDataSet;
FDMemTable1: TFDMemTable;
procedure btn_cds_to_fdmtClick(Sender: TObject);
end;
var
Form3: TForm3;
implementation
{$R *.fmx}
procedure TForm3.btn_cds_to_fdmtClick(Sender: TObject);
var
tmp : string;
begin
tmp := ClientDataSet.XMLData;
FDMemTable1.XMLData := tmp; //L'erreur survient ici
end;
end. |
Afin d'alimenter mon ClientDataSet, j'ai bien sûr préalablement posé sur ma Form:
- TSQLConnection
- TSQLDataSet
- TDataSetProvider
convenablement paramétrés.
(Je précise également que je travaille sur Delphi XE7)
Merci
Partager