IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Autres SGBD Discussion :

[DBase] Comment synchroniser 2 applis sur la même base


Sujet :

Autres SGBD

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Points : 6
    Points
    6
    Par défaut [DBase] Comment synchroniser 2 applis sur la même base
    Bonjour,

    Je cherche à récupérer depuis une table DBASE (dbf) chaque nouveau tuple inséré par un logiciel. Le problème est qu'il ne semble pas possible de se servir de procédures stockées avec ce genre de base de données.

    En fait pour être plus clair je dois sécuriser un logiciel de gestion d'un parc machines. Ce logiciel utilise une base de données dBase afin d'enregistrer un historique des connexions. De mon coté il me reste l'accès en lecture seule pour le logiciel que je crée.
    Or ce SGBD étant à base de fichiers, il ne peut bénéficier de procédures stockées.
    J'utilise le builder c++ 4 (je n'ai pas le choix d'utiliser autre chose) et j'ai pas mal cherché dans la doc pour le BDE (version 5.01), je ne trouve pas de gestionnaire d'évènements qui me permette de m'avertir qu'il y a eu un nouveau tuple d'inséré.

    J'ai pourtant suivi la FAQ C++ builder et lu le tutoriel pour le BDE mais je n'y ai pas trouvé une solution à mon problème.

    Merci d'avance pour toute suggestion.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Points : 6
    Points
    6
    Par défaut re: accès multiple sur base DBASE
    Bonjour tout le monde,

    Personne n'aurait une idée pour mon problème?
    Et si j'utilisais ODBC (par exemple en passant avec wxWidgets) est-ce que je pourrais donner accès à 2 applis sur la même base?

    Merci pour toute suggestion

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 804
    Points
    30 804
    Par défaut
    Je crains que tu ne sois obligé de rafraichir (fermer/réouvrir) régulièrement ta connexion sur la table que tu veux consulter.
    L'entête du fichier .dbf contient le nombre d'enregistrements ; en comparant les valeurs avant/après rafraichissement, tu pourras savoir si des enregistrements ont été ajoutés, et combien.
    Si, malheureusement, l'application effectue un PACK, ce compteur ne pourra pas t'indiquer combien d'enregistrements ont été ajoutés.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Bonjour Al1_24,

    Merci pour votre réponse! Je ne peux donc que me contenter de scruter avec un timer mon fichier .dbf. C'est ce que je voulais éviter mais bon, je vais devoir faire avec .
    Cependant, j'imagine mal relister toute la base toutes les n périodes.

    Par contre qu'est ce vous entendez par faire un "PACK" ?
    Est-ce que vous entendez par là, le moyen de récupérer les nouveaux tuples sans avoir à parcourir toute la base?

  5. #5
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 804
    Points
    30 804
    Par défaut
    Citation Envoyé par atomsk
    Merci pour votre réponse! Je ne peux donc que me contenter de scruter avec un timer mon fichier .dbf. C'est ce que je voulais éviter mais bon, je vais devoir faire avec .
    Cependant, j'imagine mal relister toute la base toutes les n périodes.
    Pourquoi toute la table ? Seulement l'entête et les derniers enregistrements...

    Citation Envoyé par atomsk
    Par contre qu'est ce vous entendez par faire un "PACK" ?
    Est-ce que vous entendez par là, le moyen de récupérer les nouveaux tuples sans avoir à parcourir toute la base?
    Je parlais du logiciel qui met à jour la table. La commande PACK en xBase sert à supprimer physiquement les enregistrements qui étaient supprimés logiquement. Le compteur est donc remis à jour...
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Bonjour Al1_24,

    Citation Envoyé par Al1_24
    Seulement l'entête et les derniers enregistrements
    Vous entendez par là, la clé primaire de cette table?

    Le problème est que cette table ne dispose pas de champs primaires, et je pense que je dois faire un tri sur plusieurs champs afin d'établir l'unicité d'un tuple et son ordre (il y a un champ avec la date de l'enregistrement).

    J'avoue que je débute en matière de base dBase (habituellement je travaille sur mysql ou postgresql) et je suis un peu perdu...
    Est ce que je disposerait des bons utilitaires pour manipuler un .dbf avec Odbc?
    Où dois-je utiliser autre chose?

    Merci d'avance.

  7. #7
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 804
    Points
    30 804
    Par défaut
    Le format des fichiers Dbf est assez simple :
    Un entête qui décrit le fichier (date de mise à jour, nombre d'enregistrements, taille de l'entête, taille de l'enregistrement) et la structure de l'enregistrement (nom, type, longueur des champs) suivi des enregistrements physiques, ajoutés dans l'ordre de leur création.
    Le BDE (si je me souviens bien, mais c'était il y a longtemps ) te permet d'ouvrir ce fichier, lire les infos de l'entête et naviguer entre les enregistrements (premier, dernier, précédent, suivant, Nième).
    Donc, pour connaître les derniers enregistrements ajoutés il suffit (?) d'avoir le nombre d'enregistrements antérieur, se placer sur celui-ci et prendre tous ceux qui suivent jusqu'à la fin.... Et conserver le nouveau nombre d'enregistrements pour la fois suivante !
    Traitement purement séquentiel.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Bonjour Al1_24,

    Merci beaucoup pour votre réponse!!
    Je n'avais pas tous ces eclaircissements sur les fichier .dbf.
    Pour le BDE, je sais aussi qu'il date..... C'est pour cela que je souhaitais installer les librairies d'accès à Odbc avec les WxWidgets, qui sont tout de même plus récentes...
    Je vais de ce pas tester tout cela et je repasserais pour en dire plus.

    Merci encore Al1_24!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] Comment synchroniser 2 formulaires sur le même enregistrement
    Par Ariano dans le forum Access
    Réponses: 9
    Dernier message: 06/02/2019, 11h59
  2. Comment lancer une appli sur une machine distante
    Par J.Michel dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 13/09/2007, 13h00
  3. Comment disposer deux formulaires sur la même ligne ??
    Par soad029 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 05/05/2007, 04h14
  4. Comment positionner deux blocs sur la même ligne
    Par yaya0057 dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 27/02/2007, 16h42
  5. [C#][Mysql]Comment utiliser plusieurs dataset sur la même connexion
    Par Invité dans le forum Accès aux données
    Réponses: 3
    Dernier message: 05/12/2006, 09h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo