Bonjour à tous,
Est-il possible de déplacé un enregistrement dans une DB Xml visa le TClientDataSet ?
Exemple remonté ou descendre un enregistrement dans la base de données.
Info : Aucune indexation n'est dans cette BD.
Merci![]()
Bonjour à tous,
Est-il possible de déplacé un enregistrement dans une DB Xml visa le TClientDataSet ?
Exemple remonté ou descendre un enregistrement dans la base de données.
Info : Aucune indexation n'est dans cette BD.
Merci![]()
Tout l'intérêt d'une base de données est de pouvoir organiser les données.
Cela permet notamment de trier les données avec une simple requête munie d'une clause ORDER BY ou via un index.
Donc vouloir modifier physiquement l'ordre dans lequel les enregistrements sont stockés dans une base de données n'a pas de sens.
Un fichier XML n'est pas une base de données.
C'est un fichier d'échange de données sensé être écrit par un programme et être lu par un programme.
Ce qui implique qu'en principe l'ordre des enregistrement n'a également pas d'importance puisqu'aisément modifiable par le programme qui le lit.
Maintenant si tu tiens vraiment à trier le contenu dans le fichier physique, le ClientDataSet n'est pas forcément la meilleure option.
Ceci car, encore une fois, ce tri n'a pas de sens puisque ton dataset représente la base.
Mais si tu considère ton XML comme ce qu'il est vraiment (un simple XML), tu peux le désérialiser, le trier comme tu veux avec une expression Linq et le resérialiser.
Mes tutoriels
Avant de poster :
- F1
- FAQ
- Tutoriels
- Guide du développeur Delphi devant un problème
Merci popo
Oui effectivement on parle plus de paquet de données.Un fichier XML n'est pas une base de données.
Reste la méthode Data.DB.TDataSet.Insert & Data.DB.TDataSet.Delete
On insert une copie de l'enregistrement a l'endroit souhaité, puis on supprime l'enregistrement l'origine.![]()
Bonjour, Tu as des fonctions qui te permettent de lire xml vers le dataset, réorganiser les données à ta convenance et de resauvegarder les modifs comme
le fichier xml est dans un format particulier. Je peux t'envoyer un exemple si besoin
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ClientDataSet1.MergeChangeLog; ClientDataSet1.ApplyUpdates(-1); ClientDataSet1.SaveToFile('AA1.XML', dfXML); ClientDataSet1.LoadFromFile('AA1.XML');
Partager