Salut à tous.
J'ai développé une application Android avec Delphi 10.3 très basique : consultation, édition et mise à jour d'une liste de participants via un téléphone. J'utilise un serveur DataSnap REST sur une machine Linux qui communique avec une base FireBird 2.5. Après quelques cheveux blancs, l'application fonctionne à peu près.
Pour la consultation et l'insertion de nouveaux enregistrements, pas de problème. En revanche, pour la suppression, j'ai une put@#!% d'erreur dont je ne comprends pas le sens.
Lorsque j'efface un enregistrement depuis le smartphone et que j'applique les mises à jour sur ma base distante. Ca marche. Si, dans la foulée, je supprime un second enregistrement, j'obtiens cette erreur :
EFDException [FireDac][DApt]-400. Delete command deleted[0] instead of [1] record. Possible reasons : update table does not have PK or row identifier, record has been changed/deleted by another user.
Je précise que ma base contient bien une clé primaire et que, évidement, aucun autre utilisateur n'utilise cette base à part moi.
La table IDENTITE de ma base est très simple : ID (integer), NOM (varchar(30)), PRENOM (varchar(35)) et PHOTO (BLOB binaire). ID est ma clé primaire.
Le programme client utilise une FDMemTable et les échanges entre le client et le serveur se font au format JSON conformément à toute application multi-tiers.
J'ai fouillé des heures sur la toile en quête d'un début de solution : chou blanc !
Un peu d'aide serait la bienvenue.
Merci.
Partager