Bonjour
je tente de transférer un TFDMemTable via TFDJSONDataSetsWriter mais il n'y a que la structure qui est transférée
les donnée ne passe pas
voici ce que je fait cote serveur en version allégée pour l'exemple
trace côté serveur j'ai bien les deux lignes attendues
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 function TServerMethods1.ChargerActions ( intUser : integer ; strNomService: string): TFDJSONDataSets; begin Result := TFDJSONDataSets.Create; // traitement divers pour charger le TFDMemTable // ici c'est un poil simplifié pour l'exemple while not FDQuery1.eof do begin FDMemTable1.Append; FDMemTable1.FieldByName ( 'C_ACTION' ).AsInteger := FDQuery1.FieldByName ( 'C_ACTION' ).AsInteger; FDMemTable1.FieldByName ( 'd_creation' ).AsDateTime := FDQuery1.FieldByName ( 'd_creation' ).AsDateTime; FDMemTable1.FieldByName ( 'c_util_resp' ).AsInteger := FDQuery1.FieldByName ( 'c_util_resp' ).AsInteger; FDMemTable1.FieldByName ( 'c_util' ).AsInteger := FDQuery1.FieldByName ( 'c_util' ).AsInteger; FDMemTable1.FieldByName ( 'l_comment' ).AsString := FDQuery1.FieldByName ( 'l_comment' ).AsString; FDMemTable1.FieldByName ( 'idt_appel' ).AsString := FDQuery1.FieldByName ( 'idt_appel' ).AsString; FDMemTable1.FieldByName ( 'NO_APPEL' ).AsInteger := FDQuery1.FieldByName ( 'NO_APPEL' ).AsInteger; FDMemTable1.Post; FDQuery1.next; end; // log du nombre effectif de ligne ffblog.add ( fbevInformation, 'TServerMethods1.ChargerActions','NBLIGNE : ' + inttostr( FDMemTable1.RecordCount )); ffblog.saveToFile; FDMemTable1.Active := false; // ici testé avec true ou false même resultat TFDJSONDataSetsWriter.ListAdd ( Result, FDMemTable1 );
Côté Client
Code : Sélectionner tout - Visualiser dans une fenêtre à part "2021/06/29 10:59:25.684";"Information";"xxxxxxxxxxx";"xxxxxxxxxxx";"TServerMethods1.ChargerActions";"NBLIGNE : 2"
trace côté client
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 LDataSetList := dmClient.ServerMethods1Client.ChargerActions( -1, strService ); FDMemTable1.AppendData ( TFDJSONDataSetsReader.GetListValue ( LDataSetList, 0 )); FDMemTable1.Open; FDMemTable1.First; // trace le nombre de lignes reçues fbLog.add ( fbevInformation, 'tfbLstAction.chargerDonnees' , 'NBLIGNE : ' + inttostr( FDMemTable1.RecordCount)); // trace la liste des champs reçus fblog.add ( fbevInformation, 'tfbLstAction.chargerDonnees' , FDMemTable1.FieldList.DelimitedText );
Donc 0 ligne reçue mais la structure est bien passé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 "2021/06/29 10:59:25.722";"Information";"xxxxxxxxxxxx";"xxxxxxxxxxxx";"tfbLstAction.chargerDonnees";"NBLIGNE : 0" "2021/06/29 10:59:25.722";"Information";;"xxxxxxxxxxxx";"xxxxxxxxxxxx";"tfbLstAction.chargerDonnees";"C_ACTION,D_CREATION,C_UTIL_RESP,C_UTIL,L_COMMENT,IDT_APPEL,NO_APPEL"
qu'ais je oublié de faire pour que les données transitent aussi ?
PS j'utilise d'autres fonctions similaires mais juste avec envoie de TFDQUERY qui fonctionnent très bien là avec le TFDMEMTABLE![]()
Partager