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 :

creation d'un index mdx


Sujet :

Bases de données Delphi

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 11
    Points : 5
    Points
    5
    Par défaut creation d'un index mdx
    Bonjour

    je suis débutant

    Qui peut me dire comment faire pour recrée un index mdx d'une base de donnée existante , je m'explique, si par exemple dans mon cas ma base de donnée est commandeclient.dbf et que je veut recréer les index sur le champ refcli, refart, datex ,numf comment dois je procéder , et ceci suite à mon index qui a été fichut, car j'ai déja regarder dans l'aide de delphi mais pour moi ce n'est pas très explicatif ou du moins compliquer à comprendre .

    normalement je crée mes fichier index par le biai du module de base de donnée de délphi4 mais j'aimerais pouvoir le faire intéractifement.

    Merci d'avance de vos réponses.

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut Ajout lien
    Salut,

    Tu peux utiliser la fonction du BDE API DbiRegenIndexes. La table doit être ouverte en mode exclusif.
    La fonction Check revoie un message d'erreur en cas d'echec.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    uses ..., DBTables, BDE;
     
    Table1.Exclusive := True;
    Table1.Open;
    Check(DbiRegenIndexes(Table1.Handle));
    Tu peux voir aussi du côté de DBIPackTable qui fait un pack de la table et sur option recréé les index.
    Tu peux consulter ce thread où tu trouveras un exemple:
    http://www.developpez.net/forums/sho...d.php?t=142004
    Salut, @+

  3. #3
    Membre habitué
    Homme Profil pro
    Responsable associatif
    Inscrit en
    Octobre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Responsable associatif

    Informations forums :
    Inscription : Octobre 2005
    Messages : 228
    Points : 162
    Points
    162
    Par défaut
    si tu connais les clés d'index, le mieux c encore de tout recréer

    Virer le mdx existant puis

    table1.addindex('CHAMP1');
    table1.addindex('CHAMP2');
    et zou

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    justement avec le compactage cela ne marche pas , c'est pour cela que je voudrais dans un premier temps effacer le fichier mdx et ensuite le recréer mais sans passer par le module de base de donnée de delphi 4.




    Citation Envoyé par Claudius40
    Salut,

    Tu peux utiliser la fonction du BDE API DbiRegenIndexes. La table doit être ouverte en mode exclusif.
    La fonction Check revoie un message d'erreur en cas d'echec.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    uses ..., DBTables, BDE;
     
    Table1.Exclusive := True;
    Table1.Open;
    Check(DbiRegenIndexes(Table1.Handle));
    Tu peux voir aussi du côté de DBIPackTable qui fait un pack de la table et sur option recréé les index.
    Tu peux consulter ce thread où tu trouveras un exemple:
    http://www.developpez.net/forums/sho...d.php?t=142004
    Salut, @+

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    j'ai tenté ton exemple mais ca ne marche pas , peut-tu un peut plus m'expliquer en détaille de quel manière je doit proceder , je te remercie d'avance.


    Citation Envoyé par zarbouine
    si tu connais les clés d'index, le mieux c encore de tout recréer

    Virer le mdx existant puis

    table1.addindex('CHAMP1');
    table1.addindex('CHAMP2');
    et zou

  6. #6
    Membre habitué
    Homme Profil pro
    Responsable associatif
    Inscrit en
    Octobre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Responsable associatif

    Informations forums :
    Inscription : Octobre 2005
    Messages : 228
    Points : 162
    Points
    162
    Par défaut
    procedure AddIndex(const Name, Fields: String; Options: TIndexOptions, const DescFields: String='');

    par exemple :
    table1.addindex('PARNOM','NOM',[]);
    créé un index dont le tag est 'PARNOM' sur le champ 'NOM' de la table.
    A noter que si l'index est fait sur une expression dbase, il faut le préciser:
    Table1.addindex('NOMPRENOM','NOM+PRENOM',[ixexpression]);

    pour plus de précisions, regarde dans l'aide delphi à ttable.addindex

    A+

Discussions similaires

  1. creation d'un index
    Par Msysteme dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/03/2010, 11h16
  2. creation d'un index
    Par breizh76 dans le forum Administration
    Réponses: 24
    Dernier message: 24/08/2009, 11h49
  3. operation de trie dé la creation d un index
    Par othman_k86 dans le forum Administration
    Réponses: 1
    Dernier message: 17/10/2007, 12h21
  4. [MCD]Creation d'un index
    Par VIRGINIE87 dans le forum Modélisation
    Réponses: 4
    Dernier message: 07/04/2007, 11h06
  5. Creation d'un index sous Access
    Par germaneau dans le forum Access
    Réponses: 3
    Dernier message: 18/08/2006, 14h11

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