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 :

problème avec index secondaire


Sujet :

Delphi

  1. #1
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 241
    Points : 204
    Points
    204
    Par défaut problème avec index secondaire
    Bonsoir à tous voilà dans mon application je veux créer dynamiquement un index secondaire pour l'une de mes tables paradox pour cela j'utilise la procédure ''AddIndex" et voilà le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Table1.Active:=false;
    Table1.AddIndex('ParNom','PNOM',[ ixDescending , ixCaseInsensitive]);
    Table1.Active:=true;
    mais lorsque je clique sur le bouton a qui correspond ce code j'ai ce message d'erreur " la Table est occupée" en fait je comprend pas d'ou vient cette erreur alors que j'ai mis ma table en mode exclusif.

  2. #2
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 562
    Points : 3 956
    Points
    3 956
    Par défaut
    Vérifies s'il ne faut pas un accès exclusif, en tout cas il est possible que la tale ne doit pas être déjà ouverte.

    Cdlt

  3. #3
    rsc
    rsc est déconnecté
    Membre éprouvé
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Points : 918
    Points
    918
    Par défaut
    Quelle est la ligne qui produit l'erreur ?

  4. #4
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 310
    Points
    2 310
    Par défaut
    Salut;

    élimine Bonne chance.

  5. #5
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 241
    Points : 204
    Points
    204
    Par défaut
    Bonjour tout le monde voilà ce que j'ai fait; a partir de l'inspecteur d'objets j'ai fixé la propriété active de ma table a false puis dans la création de la fiche j'ai mis mon code sans la instruction et ça marche très bien mais a ce que quelqu'un peut me dire c'est été où le problème dans la première méthode
    merci a tous.

  6. #6
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 310
    Points
    2 310
    Par défaut
    A mon humble avis, une table doit être ouverte pour MAJ des données mais là tu touchais à la structure même de la table donc l'ouvrir pour modifier les propriétés d'un champ ou MAJ des index conduirait automatiquement à un plantage puisque les données sont régies par leurs propriétés.

  7. #7
    rsc
    rsc est déconnecté
    Membre éprouvé
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Points : 918
    Points
    918
    Par défaut
    Citation Envoyé par sam83 Voir le message
    Bonjour tout le monde voilà ce que j'ai fait; a partir de l'inspecteur d'objets j'ai fixé la propriété active de ma table a false puis dans la création de la fiche j'ai mis mon code sans la instruction et ça marche très bien mais a ce que quelqu'un peut me dire c'est été où le problème dans la première méthode
    merci a tous.
    Pour ma part, je ne suis pas sûr que le problème ait été là, d'où ma première question.
    Maintenant, je te conseille de ne jamais ouvrir tes tables à la conception, car une table ouverte à la conception déclenche au démarrage du programme un tas d'événements, dont tu ne maîtrises pas le moment exact. D'où risque de problèmes difficiles à tracer.

  8. #8
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 241
    Points : 204
    Points
    204
    Par défaut
    Citation Envoyé par Just-Soft Voir le message
    A mon humble avis, une table doit être ouverte pour MAJ des données mais là tu touchais à la structure même de la table donc l'ouvrir pour modifier les propriétés d'un champ ou MAJ des index conduirait automatiquement à un plantage puisque les données sont régies par leurs propriétés.
    merci justje pense que c'est ça le problème.

    salut rsc pour rependre à ta question l'erreur se produit au niveau de la ligne suivante@+

  9. #9
    rsc
    rsc est déconnecté
    Membre éprouvé
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Points : 918
    Points
    918
    Par défaut
    Je suis tout à fait d'accord avec Just-Soft, mais :
    1/ tu fermais bel et bien ta table avant d'ajouter l'index,
    2/ Selon toi, l'erreur se produisait à la réouverture.


    Je serais tenté de penser que l'instruction d'ouverture arrivait trop vite, avant la fin de mise à jour de l'index, et comme ta table est en mode exclusif, bing... Mais ça n'explique pas pourquoi maintenant ça marche.

  10. #10
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 241
    Points : 204
    Points
    204
    Par défaut
    Bonjour;
    vraiment je comprend rien là, j'ai essayé de fait ce que ma proposé just et j'ai éliminé la ligne suivantemais j'ai toujours le même message d'erreur.
    en fin j'ai voulue utilisé cette méthode pour réindexer mes tables maintenant ma question est a ce que il existe d'autre méthodes pour le faire merci

  11. #11
    rsc
    rsc est déconnecté
    Membre éprouvé
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Points : 918
    Points
    918
    Par défaut
    Il y a deux cas de figures.

    Soit tu veux un index permanent, alors le plus simple es d'accéder tu as accès à la structure de ta table, dans le Module de données par exemple,Outils/Utilitaires/Restructuter et tu crées ton index.
    Ensuite, dans ton appli, tu l'actives par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IndexName := 'MonIndex';
    Soit tu veux un index juste pour le temps de ton appli, et alors tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IndexFieldNames := 'Champ1; Champ2';
    Par contre, là tu n'as pas accès aux options (Descending, ...)

  12. #12
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 310
    Points
    2 310
    Par défaut
    Re;

    Pour rappel, un index sert à l'ordonnancement des enregistrements. maintenant revenant à ta dernière question et je répondrai pourquoi ne pas utiliser des instructions SQL avec des Order By ?

    donc au lieu de créer des index figés vaut mieux utiliser le SQL qui lui ne nécessite pas des index et est plus souple puisque tu peux indexer sur n'importe quel champ avec une légère perte coté rapidité d'affichage. cette perte est due principalement à plusieurs paramètres :

    • type SGBD;
    • composants utilisés;
    • type d'accès à la BD, ...


    Le SQL est une sérieuse alternative dont tu devrais y songer.

    Bonne chance.

  13. #13
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 241
    Points : 204
    Points
    204
    Par défaut
    Bonjour just ;
    Je suis tout à fait d'accord avec toi, mais comment j'utilise beaucoup de filtre dans mon application et comme ces filtres sont relier entre eux par exemple je filtre sur sexe puis sur cet filtre je filtre sur nom.....
    donc si j'utilise l'utilisation des instruction SQL ça ne va pas être une bonne solution. une autre question: a ce que on peut utiliser un filtre sur une requête active. merci

  14. #14
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 310
    Points
    2 310
    Par défaut
    Citation Envoyé par sam83 Voir le message
    Bonjour just ;
    Je suis tout à fait d'accord avec toi, mais comment j'utilise beaucoup de filtre dans mon application et comme ces filtres sont relier entre eux par exemple je filtre sur sexe puis sur cet filtre je filtre sur nom.....
    donc si j'utilise l'utilisation des instruction SQL ça ne va pas être une bonne solution. une autre question: a ce que on peut utiliser un filtre sur une requête active. merci
    Re;

    Si j'ai bien compris tu veux filtrer sur le résultat d'une requête si c'est ça alors oui. Une seule contrainte s'impose, ta requête doit avoir un nom puis tu peux très bien t'en servir pour exécuter un filtre sur les données déjà filtrées !

    Je crois que tout les SGBD permettent de renommer une requête mais il faut s'assurer quand même.

    Bonne chance.

  15. #15
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 241
    Points : 204
    Points
    204
    Par défaut
    Merci just pour tes repenses et merci à vous aussi rsc

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

Discussions similaires

  1. Problème d'index secondaire
    Par LuckyLuke56 dans le forum Bases de données
    Réponses: 6
    Dernier message: 14/10/2008, 13h25
  2. [Spip] Problème avec index.html
    Par Holin dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 21/08/2007, 14h37
  3. Problème avec index.jsp
    Par ninie5131 dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 04/07/2006, 16h45
  4. Problème d'index avec load data file
    Par bruno782 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 09/03/2005, 12h11
  5. Réponses: 1
    Dernier message: 01/03/2005, 21h36

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