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

Bases de données Delphi Discussion :

[Paradox] Messages étranges, modifications perdues


Sujet :

Bases de données Delphi

  1. #1
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 42
    Points : 41
    Points
    41
    Par défaut [Paradox] Messages étranges, modifications perdues
    j'ai développé une petite application utilisant des tables paradox (.db). Je l'ai utilisée pendant deux mois sans aucun problème, dernièrement des messages apparaissent à chaque fois (virgule flottante, redémarrez l'application, ...). Alors toutes les modifications effectuées même avant l'apparition des messages ne sont pas prises en compte. Quelle est l'origine de ces messages et comment faire pour que les modification seront prises en compte sachant que la propriété autorefresh des tables est à true ?

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 667
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 667
    Points : 5 235
    Points
    5 235
    Par défaut
    Citation Envoyé par quedudev Voir le message
    virgule flottante, redémarrez l'application
    Ce n'est pas le genre de message que Delphi provoque quand il rencontre une exception ou une erreur. Si tu as développé cette appli tu dois savoir où se trouve ce fameux message d'erreur.
    Sinon tu as la possibilté de t'arreter sur les exception delphi (dans Outils>Options du débogueur>Exceptions du langage). Ton appli s'arretera sur la ligne qui pose problème.

    Pour ton problème je dirai a priori que cela vient de la virgule. As récemment modifié tes paramètres régionaux (changé le caractère utilisé pour la virgule) ?

  3. #3
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 42
    Points : 41
    Points
    41
    Par défaut
    non je n'ai pas du tout modifié les parmètres régionnaux

  4. #4
    rsc
    rsc est déconnecté
    Membre éprouvé
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Points : 918
    Points
    918
    Par défaut
    Pour l'origine des erreurs, on manque de renseignements pour pouvoir t'aider.
    Comme l'a dit popo, cherche la ligne qui pose problème, et si tu ne comprends toujours pas, donne-nous le bout de code et l'erreur exacte.

    Pour la question des modifications non-enregistrées, il faut savoir que quand on utilise des tables Paradox avec le BDE et des composants TTable, les modifications sont d'abord stockées dans le cache Windows avant d'être écrites en base à la fermeture des tables ou qqf avant. Donc si tu as une erreur qui interrompt l'appli, tes modifications sont perdues.

    Je ne connais pas de solution simple pour changer ce comportement. Il en existe, fondées sur la dérivation des composants TTable et l'appel à des fonction de l'"API BDE" Dbi..., mais c'est compliqué et je n'ai plus les détails.

    Le meilleur moyen pour éviter ou en tous cas limiter les problèmes est d'enfermer le maximum de code pouvant générer des erreurs dans des blocs
    try... finally, et de fermer tes tables dans la partie finally, pour provoquer l'écriture des modifications.
    Roland

  5. #5
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut
    Je ne connais pas de solution simple pour changer ce comportement. Il en existe, fondées sur la dérivation des composants TTable et l'appel à des fonction de l'"API BDE" Dbi...,
    .....DbiSaveChange

    DbiSaveChanges saves all buffered changes to disk and makes the table permanent
    Ou sinon la methode FlushBuffers du TTable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Table1.FlushBuffers;
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/05/2011, 12h05
  2. un message étrange
    Par smh_master dans le forum Flash
    Réponses: 15
    Dernier message: 06/12/2006, 16h15

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