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 :

Conseil pour Indexer une table DBase


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 176
    Points : 123
    Points
    123
    Par défaut Conseil pour Indexer une table DBase
    Bonjour (Delphi7 et DBase 4)
    Je me bats pour indexer une table.
    Essai 1 : utilisation bête du code fourni dans l'aide de Delphi
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    with Modele_Compte do // c'est le nom de ma table
      begin
        Active := False;
        TableType := ttDBase;
        DatabaseName := '';
        TableName := 'Modele_Compte.dbf';
        if not Modele_Compte.Exists then
          begin
            with FieldDefs do
              begin
                Clear;
                with AddFieldDef do
                  begin
                    Name := 'Num_Auto';
                    DataType := ftInteger;
                    Required := True;
                  end;
                with AddFieldDef do
                  begin
                    Name := 'Libellé';
                    DataType := ftString;
                    Size := 30;
                  end;
              end;
             with IndexDefs do
                begin
                  Clear;
                  // Le 1er index n'a pas de nom car il s'agit
                  // d'une clé primaire Paradox
                  with AddIndexDef do
                    begin
                      Name := '';
                      Fields := 'Num_Auto';
                      Options := [ixPrimary];
                    end;
                  with AddIndexDef do
                    begin
                      Name := 'Index2';
                      Fields := 'Libellé';
                      Options := [ixCaseInsensitive];
                    end;
                end;
              CreateTable;
          end;
      end;
    end;
    Résultat : message d'erreur "Descripteur d'index incorrect. La table n'existe pas..."

    Essai2 : adaptation du code de Nono40 trouvé dans la FAQ
    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
    23
    24
    25
    26
    27
    28
    29
     
          with Modele_Compte do
            begin
              Active := False;
              TableType := ttDBase;
              DatabaseName := '';
              TableName := 'Modele_Compte.dbf';
              if not Modele_Compte.Exists then
                begin
                  with FieldDefs do
                    begin
                      Clear;
                      with AddFieldDef do
                        begin
                          Name := 'Num_Auto';
                          DataType := ftInteger;
                          Required := True;
                        end;
                      with AddFieldDef do
                        begin
                          Name := 'Libellé';
                          DataType := ftString;
                          Size := 30;
                        end;
                    end;
                  CreateTable;
                end;
            end;
            Modele_Compte.AddIndex('','Num_Auto',[ixPrimary]);
    Résultat : pas d'erreur, fichier index .MTX créé

    Question : cette seconde méthode est-elle la seule et unque ? Ou y a-t-il mieux ?
    Cordialement.
    AlainVH

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 176
    Points : 123
    Points
    123
    Par défaut
    Bonjour.
    Je me réponds à moi-même : "Eh ! Banane, pourquoi fonctionnes-tu encore avec DBase ? Apparemment, Paradox semble plus indiqué pour développer sous Delphi, alors fais le saut, évolue !"
    Que pensez-vous de ma réponse à moi-même ?
    Cordialement.
    AlainVH

  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
    tant que veut changer passe plutot access, avec Paradox tu aura beaucoups de problemmes, d'index...., trops de fihiers perte de données...

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 176
    Points : 123
    Points
    123
    Par défaut
    Merci pour ton conseil, Aityahia.

  5. #5
    Membre habitué Avatar de Archibald29
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 112
    Points : 131
    Points
    131
    Par défaut [Dbase] [GoTo] [FireBird]
    Bonjour,

    Et pourquoi pas FireBird ?

    Je suis longtemps resté fidèle au format Dbase conservé pour des raisons de compatibilité et de standard puis j'ai fini par buter sur la gestion des index et suis passé à FireBird qui donne toute satisfaction jusqu'à présent.

    La migration a été facile en utilisant les composants compatibles "DataSet"
    disponibles à partir des versions "Pro" de delphi.


Discussions similaires

  1. [MySQL-5.5] Comment indexer une table pour la fusionner
    Par Mordehai dans le forum Requêtes
    Réponses: 1
    Dernier message: 20/03/2013, 11h24
  2. Réponses: 3
    Dernier message: 08/04/2011, 12h26
  3. Indexation d'une table dBase
    Par memoInf dans le forum Bases de données
    Réponses: 1
    Dernier message: 08/11/2009, 20h04
  4. Regénération d'index corrompu d'une table Dbase(*.cdx)
    Par helmis dans le forum Bases de données
    Réponses: 4
    Dernier message: 16/03/2008, 19h40
  5. Pb du nombre d'index pour lier une table
    Par caballero dans le forum Access
    Réponses: 2
    Dernier message: 06/06/2007, 14h15

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