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

 Delphi Discussion :

Création par l'Application d'index de fichier archivé automatiquement


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 167
    Par défaut Création par l'Application d'index de fichier archivé automatiquement
    Salut! tout le monde.

    Je travaille avec Delphi 7 Entreprise, la BDE et Paradox.

    J'archive par MonApplication un fichier Maitre2008 dans Maitre2009.
    Jusque que là tout va bien. Le fichier maitre2009 est copié correctement.

    C'est au moment de créer les index Primaire et Secondaires que ça cloche.

    J'ai suivi l'approche de la FAQ :

    Il suffit d'utiliser la méthode AddIndex du composant TTable afin de créer un index sur la table. La table ne doit pas être ouverte par ailleurs pour que la procédure fonctionne.
    Par exemple pour créer un index primaire sur une table Paradox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Table1.AddIndex('','C2;C1;C3',[ixPrimary]);
    Et pour ensuite créer un index secondaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Table1.AddIndex('UnIndex','C2;C3',[ ]);
    Voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    procedure TForm1.bitbtArchiveExerciceClick(Sender: TObject);
    var nomTable : TTable;
    begin
      nomTable := TTable.Create(self);
      nomTable.TableType :=ttParadox;
    
      nomTable.TableName :='Maitre2009';
      BatchMove1.Source :=tbMaitre;
      BatchMove1.Destination :=nomTable;
      BatchMove1.Mode :=batCopy;
      BatchMove1.Execute;
      
      tbMaitre.Active:=False ;
    
      nomTable.AddIndex('','NaturePrest;Unite;Nom;Prenom',[IxPrimary]);
    
      nomTable.AddIndex('IxMaitree2009','NaturePrest;Unite;Nom;Prenom',[]);
      tbMaitre.Active:=True ;
    
    
    
    end;
    A la création de l'index Primaire l'Application crée une classe d'exception et le message suivant est affiché :
    Numéro hors limite Processus stoppé

    J'ai fermé le fichier Maitre2008. alors que normalement ce n'a aucune incidence sur la création des index de Maitre2009.

    Ce que je ne comprends pas dans la FAQ Delphi c'est 'C2;C1;C3' à la création de l'index Primaire?

    Où se situe mon erreur?
    Merci

    NB : Lorsque je crée manuellement

    L'index Primaire.
    une TTable (avec comme TTable.Name : NomTable et TTable.TableName : Maitre2009.
    un Datasource connecté à NomTable.
    et que je lance par un click de Bouton la création de l'Index Secondaire par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      nomTable.AddIndex('IxMaitree2009','NaturePrest;Unite;Nom;Prenom',[]);
    Alors l'index secondaire est créé.

  2. #2
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 167
    Par défaut
    Je me cite

    Ce que je ne comprends pas dans la FAQ Delphi c'est 'C2;C1;C3' à la création de l'index Primaire?
    'C2;C1;C3' sont respectivement les trois premiers champs de la table (dans cet ordre) qui assemblés sont uniques dans la table

    Où se situe mon erreur?[/
    L'erreur réside dans le code de création de l'index primaire qui doit être ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      nomTable.AddIndex('','Cle Interne',[IxPrimary]);
    Le champ 'Cle interne' existe dans la table source, c'est le premier champ de la table, il est incrémenté automatiquement (il est d'ailleurs utilisé comme index primaire dans la table source).

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/05/2014, 17h20
  2. [Débutant] Création d'une application de gestion + remplir un PDF automatiquement
    Par celtic sword dans le forum VB.NET
    Réponses: 4
    Dernier message: 21/11/2012, 16h08
  3. quels fichiers ouverts ou tentés d'être ouverts par une application
    Par jean-jacques varvenne dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 17/09/2007, 10h19
  4. Réponses: 8
    Dernier message: 08/10/2006, 11h00
  5. Réponses: 9
    Dernier message: 22/03/2003, 21h47

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