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 :

Modifications d'un .dbf non prises en compte


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 84
    Points : 82
    Points
    82
    Par défaut Modifications d'un .dbf non prises en compte
    Bonjour à tous.

    J'ai un soucis à propos de modification de fichier dbf qui me semble insoluble.
    Ce sont des fichiers devant être lu par un logiciel commercial, mais ils ont été corrompu et je dois donc reconstruire ces bases pour la bonne marche de notre logiciel.


    J'ai 2 fichiers dbf, un contenant plusieurs colonne dont : un n° d'identification, nom, prénom .

    L'autre contient : le n° d'identification, l'adresse, le tel

    Les 2 bases sont donc liées par le n° d'identification.

    J'ai écris un code pour modifier ces fichiers dbf, lorsque je modifie des champs déja existant ça ne pose aucun problème.

    Mais lorsque je tente de rajouter des lignes à la base de données elles ne semblent pas être prise en compte.

    Voici le bout du code qui rajoute des lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    coord.TableName:=extractfilepath(application.ExeName)+'base_nom.DBF';
     
    coord.active:=true;
    coord.CanModify;
    coord.Append;
    coord.Edit;
     
    coord.Fields[0].Text:=num;
    coord.Fields[1].Text:=nom;
    coord.Fields[2].Text:=prénom;
     
    coord.Post;
    coord.Close;
    num, nom et prenom sont de type string. Coor est un Ttable.

    J'ai le même type de code pour la base contenant les adresses.

    Lorsque j'ouvre le dbf modifié avec un tableur tous les champs sont parfaitement remplis.

    Mais lorsque je tente de faire lire ces fichiers par le programme qui est censé les lire j'obtient pour chaque ligne rajoutée un message du type "Il n'y a pas de lien entre les bases pour Monsieur "Machin" " Tout se passe comme si le n° d'identification était mal renseigné alors que je les ai vérifié et re-vérifié.

    Ce qui me chiffonne c'est que cela ne concerne que les lignes rajoutées via la procédure Append de mon Ttable

    Si quelqun pouvait m'éclairer, j'ai du louper quelque chose..

    Merci.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 84
    Points : 82
    Points
    82
    Par défaut
    Est ce que je pourrais utiliser un autre objet qu'un Ttable pour modifier ma base ?

    Pour l'instant je ne connais pas d'autre méthode, mais il y a peut etre des objets plus approprié ?

    Par avance Merci.

  3. #3
    Membre actif
    Inscrit en
    Décembre 2004
    Messages
    390
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 390
    Points : 288
    Points
    288
    Par défaut
    Salut,

    Sois-sûr du nom de ta table.
    - Tu enlèves CanModify. Il n'a pas de sens comme tu le présente.
    CanModify a une valeur booleenne qui te permet de savoir si tu peux modifier ou non les infos d'une table.

    - Tu enlèves, aussi, Edit, qui est une commande qui permet de mettre en mode edition un enregistrement existant.

    Je te conseille d'utiliser FieldByName('NomChamp').AsString au lieu de Fields[0]

    Je suppose que tu a mis quelques infos dans les variables Num, Nom et Prenom (Il faut eviter les accents dans les varaiables !)


    coord.TableName:=extractfilepath(application.ExeName)+'base_nom.DBF';
    coord.active:=true;
    //coord.CanModify;
    coord.Append;
    //coord.Edit;

    coord.Fields[0].Text:=num;
    coord.Fields[1].Text:=nom;
    coord.Fields[2].Text:=prénom;

    coord.Post;
    coord.Close;



    Bon Courage.

Discussions similaires

  1. Réponses: 0
    Dernier message: 28/11/2011, 22h40
  2. Réponses: 4
    Dernier message: 23/08/2010, 08h48
  3. modification d'une méthode non prise en compte
    Par nina2007 dans le forum C++
    Réponses: 7
    Dernier message: 10/07/2010, 12h29
  4. [WD10] Modification de l'analyse non prise en compte
    Par mohamed9 dans le forum WinDev
    Réponses: 1
    Dernier message: 19/02/2010, 08h38
  5. Réponses: 8
    Dernier message: 18/07/2007, 15h41

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