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 :

[DELPHI][PARADOX] fichier ERRINSER.DB


Sujet :

Bases de données Delphi

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2002
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 57
    Points : 31
    Points
    31
    Par défaut [DELPHI][PARADOX] fichier ERRINSER.DB
    Bon, ben rebonjour à tous!
    Je suis encore avec mon probleme de base de données, mais cette fois ci, un autre! faut bien changer un peu, sinon ca lasse!

    Voilà: J'ai deux bases TEFFE.DB et TINDI.DB qui sont remplies de données, non sans l'aide que vous m'avez apporté.

    Je fait, apres ca, une requete de ce genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Query1.Close;
      //On lie la requete aux fichiers *.db
      Query1.DatabaseName := dbMeteor.DatabaseName;
      //On purge la requete
      Query1.SQL.Clear;
      //On créé la requete qui va insérer dans le fichier INDI.db
      Query1.SQL.Add('insert into INDI (aaaa, mm, anom, nmat, ksex, ctp, kunio, kuniu, ddind, dfind, qind, qrind, kind)'
        + ' select aaaa, mm, anom, nmat, ksex, ctp, kunio, kuniu, ddind, dfind, qind, qrind, kind'
        + ' from TINDI');
      //On execute la requete
      Query1.ExecSQL;
    Et ca me remplie bien mon fichier INDI.DB

    Par contre, quand je fait la requete juste apres:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //On ferme la requete
      Query1.Close;
      //On lie la requete aux fichiers *.db
      Query1.DatabaseName := dbMeteor.DatabaseName;
      //On purge la requete
      Query1.SQL.Clear;
      //On créé la requete qui va insérer dans le fichier EFFE.db
      Query1.SQL.Add('insert into EFFE (aaaa, mm, anom, nmat, ctp, cumul, hhcc)'
        + ' select aaaa, mm, anom, nmat, ctp, cumul, hhcc'
        + ' from TEFFE');
      //On execute la requete
      Query1.ExecSQL;
    Ca ne m'affiche aucune erreur mais ca créé un fichier ERRINSER.DB au lieu de mettre à jour mon fichier EFFE.db alors qu'avant, avec le meme code, ca marchait sans soucis...

    Quelqu'un aurait une idée pour un pauvre developpeur qui va décidement se tirer une balle dans la tête la prochaine fois qu'il entend parler de PARADOX!!!

  2. #2
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 202
    Points : 108
    Points
    108
    Par défaut
    je crois qu'il te manque une propriété au moment ou tu appel l'alias
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    NetFileDir:= Chemin du fichier .net
    PrivateDir:=repertoire tempon qui garde les fichiers que tu ne veux pas;

  3. #3
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    dans un cours de sqlpro ici il est dit
    page 62:
    Certaines requêtes d'insertion apparaissaient comme fonctionnant normalement
    (production d'une table RIVE:ERRINSER.DB en cas d'impossibilité d'insertion
    suite à des viols des contraintes d'intégrité...) mais de nombreux enregistrements
    étaient perdus. Ce problème a été traité et les requêtes d'insertion fonctionnent
    maintenant correctement.
    j'ai utilisé Google avec ERRINSER.DB comme mot clé alors faite de même.

    Nb: tes commentaires ils nous aide pas vraiment a comprendre le code au contraire il est illisible.

    il me semble que c'est mieux comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Query1.Close;  
    Query1.DatabaseName := dbMeteor.DatabaseName; //On lie la requete aux fichiers *.db
    Query1.SQL.Clear;   //On purge la requete
    Query1.SQL.Add('insert into INDI (aaaa, mm, anom, nmat, ksex, ctp, kunio, kuniu, ddind, dfind, qind, qrind, kind)' //On créé la requete qui va insérer dans le fichier INDI.db
        + ' select aaaa, mm, anom, nmat, ksex, ctp, kunio, kuniu, ddind, dfind, qind, qrind, kind'
        + ' from TINDI');
    Query1.ExecSQL;  //On execute la requete

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mai 2002
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 57
    Points : 31
    Points
    31
    Par défaut
    Salut
    Bon, avant tout, merci de vous pencher sur mon probleme, c'est cool de votre part.

    ensuite, evidemment que j'ai fait une recherche sur google (qui d'ailleurs ne retourne que 2 resultats) et j'ai bien vu la page que tu cite. Le probleme c'est que je n'ai pas compris ce qu'ils ont fait pour le résoudre... Je suis peut etre idiot mais "les viols des contraintes d'intégrité" sont pour moi aussi clair que l'eau du bain apres que Caradoc soit passé dedand...
    J'aimerais juste savoir comment on peut eviter ce genre de violation.

    Franck, quel chemin je suis censé mettre dans PrivateDir? Les fichiers que je ne VEUX pas? Ben tous les repertoires SAUF celui ou se trouve l'executable, non?

    en tout cas, merci a vous.

  5. #5
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    les contraintez d'intégrité c'est par exemple quand on a une relation maitre/détails et on essai d'insérer des lignes détail lorsque le code maitre n'existe pas.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mai 2002
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 57
    Points : 31
    Points
    31
    Par défaut
    Ben moi, je ne fait que ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    //On purge la requete
      Query1.SQL.Clear;
      //On créé la requete qui va insérer dans le fichier EFFE.db
      Query1.SQL.Add('insert into EFFE (aaaa, mm, anom, nmat, ctp, cumul, hhcc)'
        + ' select aaaa, mm, anom, nmat, ctp, cumul, hhcc'
        + ' from TEFFE');
      //On execute la requete
      Query1.ExecSQL;
    Aucun des champs 'AAA, mm, anom, nmat, ctp, cumul et hcc' ne sotn des clés primaires. Je sais, c'est bizarre mais le code marchait parfaitement avant. J'ai l'impression que ca se met a deconner depuis qu'une fois, mon code s'est arreté en plein milieu de son execution. C'est piossible que ca ai crashé un truc?

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/07/2007, 11h57
  2. [Delphi 2005] Fichiers .dcr
    Par Philoug dans le forum Delphi
    Réponses: 5
    Dernier message: 19/02/2007, 19h43
  3. Comment utiliser Between entre 2 dates en SQL DELPHI/Paradox
    Par tarbala dans le forum Bases de données
    Réponses: 4
    Dernier message: 12/04/2006, 10h33
  4. delphi/paradox : ouvrir deux fois une table
    Par lux dans le forum Bases de données
    Réponses: 3
    Dernier message: 15/12/2005, 09h47
  5. Utilisateurs d'une appli delphi+paradox
    Par Jacques Deyrieux dans le forum Paradox
    Réponses: 2
    Dernier message: 11/12/2002, 18h41

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