Tri d'une table sous Delphi 5

Bonjour, lors du tri de ma base de données selon le nom et la date d'installation des employés, a chaque fois quand je exécute mon programme, il m'affiche ce message d'erreur:
{Le projet 1a provoqué une classe d'exeption EDBEngine Error avec le message d'erreur 'L index n existe pas, Index:Dat_instal'
J'ai définis le code de l'employés comme clé primaire et le nom et la date d'installation comme des clés secondaires, j'ai rencontré le même problèmes avec le tri selon le nom
De quoi s'agit ce problème
Et comme le résoudre



--
A travers la discussion j'allais la lumière.

6 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour
    essayer avec une requête SQL et ajouté a la fin ORDER BY EMP_COD, DAT_INSTAL etc .... pour ordonné la table en sortie
    et utilisé une table intermédiaire pour stocké cette nouvel requête ... vidé la table d'origine et la remplir après de l'autre table

    je sais que c un peut tiré par les chvx mais ....

    et mentionne svp quel base de données t'utilise et l'outil de développement

    et n'oublier pas de vidé la table intermédiaire une fois que tu aura fini lol

    bon chance
    1. Merci PROOF pour la réponse, j'ai résous mon problème, j'ai utilisé cette instruction :

      table1.IndexName:='DATINSTAL';

      j'utilise Delphi5 et les tables paradox, que pensez vous????

      J'ai rencontré un autre problèmes, j'ai essai de fabriquer un état en passant par une form pour la séléction du nom de l'employé, j'ai écris ce code dans le boutton de la première form :

      QRlistform8.Query1.SQL.Clear;
      QRlistform8.Query1.SQL.Add('Select *');
      QRlistform8.Query1.SQL.Add('From employes');
      QRlistform8.Query1.SQL.Add('Where nom='+edit1.text+'');
      QRlistform8.Query1.Active:=True;
      QRlistform8.QuickRep1.Preview;

      dans le QRlistform j'ai utilisé un composant datasource et un query, j'ai saisie le code suivant dans le composant query :

      Select *
      From employes
      where nom="+edit1.text+"

      Mais malheureusement ça marche pas, je pense qu'il s'agit juste d'une erreur bête mais je ne sais pas comment la résoudre!!!!!

      Tout commentaire serait grandement apprécié.
      1. essay

        QRlistform8.Query1.SQL.Add ('Select * from employes where nom = :xnom')
        QRlistform8.Query1.Parama('xnom').asstring:= edit1.text

        jspr que ca va marché l0l
      2. parama (identificateur non déclaré) :(
        M'aidezzzz
    2. bonjour

      pour la BDD normal meme moi g passé sur delphi 5 et paradox ya 3 ans ... (le temps passe vite....lol )

      si c'est le texte exact que ta mis ici sur la ligne
      QRlistform8.Query1.SQL.Add('Where nom='+edit1.text+''); il te manque une cote (') aprés where nom=
      1. pardon une erreur de ma part ...

        QRlistform8.Query1.ParamByName('xnom').asstring:= edit1.text;
        1. ça marche pas!

          je vais t'expliquer:
          je vais imprimer les informations d'un employés, pour cela j'ai besoin de deux form une pour la selection du nom de l'employé et la deuxième pour l'impression, j'ai saisie ce code dans le boutton "ok" de la première form (je saisie le nom dans un édit):

          QRListform8.Query1.SQL.Clear;
          QRlistform8.Query1.SQL.Add ('Select * from employes where Nom=:xnom');
          QRlistform8.Query1.ParamByName('xnom').asstring:= edit1.text;
          QRListform8.Query1.Active:=True;
          QRListform8.QuickRep1.Preview;

          dans la deuxième form j'utilise un datasource et un query, je doit evidement activer le query pour relier les composants QRDBText avec les champ de la table, j'ai saisie ce code dans a proprièté SQL:

          Select * from employes where Nom=:xnom');
          ParamByName('xnom').asstring:= edit1.text;

          Quand j'essay d'activer le sql je reçois le message d'erreur: utilisation du mots clé incorrectes ParamByName('xnom').asstring:= edit1.text

          Merci pour l'aide et surtout pour la patiente PROOF
      2. bonjour, j'ai réussis à exécuter mon programme et j'ai essayé de rajouter des tests mais je n'arrive pas à le compiler voila le programme:

        procedure TForm16.Button1Click(Sender: TObject);
        begin
        if Edit1.Text='' then showmessage('Entrer le nom de l''employé!');
        begin
        if QRListform8.Query1.fieldValues['Nom']<>edit1.Text then
        begin
        showmessage('Cet employes n''existe pas');
        edit1.clear;
        end;
        end
        else
        begin
        QRListform8.Query1.SQL.Clear;
        QRListform8.Query1.SQL.Add('Select *');
        QRListform8.Query1.SQL.Add('From employes');
        QRListform8.Query1.SQL.Add('Where nom=' + QuotedStr(edit1.text));
        QRListform8.Query1.Active:=True;
        QRListform8.QuickRep1.Preview;
        Form16.Close;
        end;

        voila le message d'érreur ';' attendu(e) mais 'ELSE' trouvé(e)

        Tout commentaire serait grandement apprécié.