cs_sidalilo
Messages postés108Date d'inscriptionmardi 28 février 2006StatutMembreDernière intervention 9 juillet 2013
-
11 nov. 2012 à 12:11
cs_sidalilo
Messages postés108Date d'inscriptionmardi 28 février 2006StatutMembreDernière intervention 9 juillet 2013
-
14 nov. 2012 à 11:43
salut .
je travail sur base de données xml et je veux faire une requete sql sur cette base en delphi.
j ai essayé avec query mais non applicable est ce qu'il ya autre composant pour faire des requete sql sue une base de données xml en delphi
je vous remercie bien pour votre aide.
cs_sidalilo
Messages postés108Date d'inscriptionmardi 28 février 2006StatutMembreDernière intervention 9 juillet 2013 12 nov. 2012 à 11:11
je vous remercie beaucoup pour votre attention je v essayer.
Autre question:j'ai 2 petites application
1 application server et 2 application client et la base de données en XML en delphi et je veux lorsque je fais des operations sur l'application CLIENT (enregistrement,suppression,...) l'affichage dans l'application SERVER sera rafraichi automatiquement .
merci bien de vous me donnner s'il faut utiliser les sockets ou un serveur special XML ou...
Veuillez me donner ce qu'est util et efficace.
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 12 nov. 2012 à 19:45
@Mauricio :
il faut une BDD de structure identique à l'XML donc si c'est du gros XML, ça risque de prendre du temps.
ensuite quand on ouvre l'XML on le monte en base (avec une belle gauge de progression tout ça).
puis, on ne travail que sur la base (copie conforme de l'XML).
quand on quitte le programme, on demande si il faut reconvertir la base vers l'XML (enregistrer les modif).
@Sidalilo :
pour avoir fait pareil avec des XML et CSV, l'idéal, c'est la base de données (XML vers Base par exemple):
on s'absout de maintenir un serveur, chaque client à accès à la base directement. il faut par contre géré un mode Admin pour l'importation d'XML dans la base (ou laisser la tache au client tout dépend des données).
Gérer une table de lock pour éviter l'accès au données à plusieurs client en même temps ->
"la ligne X est en cours d’édition par N, patientez."
la structure est simple :
id_lock, table, id_element_table, id_client, date
sur ouverture d'une ligne par client A -> creation du lock par A (seul A peux y acceder)
un autre client B,C,D tente d'y acceder -> renvoyer message lock par A
sur la fermeture d'une ligne par client A -> suppression du lock par A (B,C,D peuvent de nouveau acceder à la ressource)
sur ouverture et fermeture client A -> suppression des lock par A
client Admin peux voir tout les Lock
tache cron toute les heures ou N heures -> si date lock > à N heures ou client du lock déconnecté -> supprimer lock
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 13 nov. 2012 à 10:23
Ok,
je pensais qu' il y a avait un autre moyen
J' ai moi-même crée un utilitaire qui exporte mes tables dbf, db et même xml vers mySQL (avec exportation des données en option).
Je suis aussi en train d' implémenter un système de lock virtuel sur un enregistrement (comme le fait le BDE) sur mes 2 compos table TcyDbxTable et TcyDbxSimpleStable: ces 2 compos sont des substituts au TClientDataset. J' utilise pour cela la fonction GET_LOCK() de mySQL qui permet de sauvegarder une string dans la mémoire du serveur. Ces 2 compos vont ensuite au moment de passer la table en Edit, vérifier s' il existe déjà un lock sur le schema/table/enregistrement actuel.
cs_sidalilo
Messages postés108Date d'inscriptionmardi 28 février 2006StatutMembreDernière intervention 9 juillet 2013 14 nov. 2012 à 11:43
je vous remercie beaucoup encore pour votre attention et votre reponse mais le m'excuse j'ai trempi un peu dans l'expression je veux exactement ca:
pour que le rafraichissement soit automatiquement dans le poste client
j'ai un dbrid remplis par les données dans l'application CLIENT et je veux lorsque il ya un evenement dans l'application de SERVEUR telque(enregistrement,suppression,ect..) les données qui sont le dbgrid sera raffraichis automatiquement c'est à dire s'il ya un enregsitrement ajouté je vois cet'enregistrement affiché dans le dbgrid.
j'ai utilisé les sockets de INDY client/server
un principe de chat lorsque il ya un evenement le serveur envois un message à le CLIENT pour rafraichir.
est ce que cette methode est une bonne solutuion ou pas?