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

Lazarus Pascal Discussion :

Plantage sur une requête [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    jpp
    jpp est déconnecté
    Membre confirmé Avatar de jpp
    Homme Profil pro
    en recherche d'emploi
    Inscrit en
    Mars 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : en recherche d'emploi

    Informations forums :
    Inscription : Mars 2003
    Messages : 52
    Par défaut Plantage sur une requête
    Bonjour , je suis un peu ennuyé, voila mon problème ce bout de code permet de récupérer les adresses des personnes dans la base de données et d'extraire ceux qui n'ont pas eu de mise a jours depuis un temps spécifié dans un spinedit a priori lors de l’exécution ça se passe bien, mais a un moment donné ça se bloque et ensuite c'est planté , plus rien de marche est ce que quelqu'un a une idée ?
    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
     
    var
      S:TDateTime;
      R:extended;
      T:integer;
      fa:longint;
    begin
       sqlmaj.Active:=False;
       Sqlmaj.SQL.Text:='Select * From `monserveur`.`mabase` where `maj`='+(#39)+'non'+(#39);
       sqlmaj.active:=true;
       sqlmaj.edit;
       sqlmaj.first;
       while not sqlmaj.eof do
       begin
         sqlmaj.Edit;
         fa:=FileAge(Sqlmaj.FieldByName('nom fichier').AsString);
         if fa<>-1 then
         begin
           S:=FileDateToDateTime(fa);
           R:=now-S;
           T:=round(R);
           if T > SpinEdit1.Value then
           begin
                result:=(sqlmaj.fieldbyname('mail').AsString);
                memo1.lines.add(result);
         end;
           sqlmaj.post;
           sqlmaj.Next;
         end;
       end;
     
    end;

  2. #2
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 786
    Par défaut
    Bonjour,
    Citation Envoyé par jpp Voir le message
    est ce que quelqu'un a une idée ?
    2 ou 3 éléments constatés en effet :
    1. Pourquoi passer en édition un ensemble de données que l'on ne va pas modifier ?
    2. Placer l'instruction Next dans le bon bloc
    3. AMHA, quelques instructions inutiles bien que non bloquantes.

    Rectifié avec quelques commentaires, cela donne :
    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
    var
      S:TDateTime;
      //R:extended;
      T:integer;
      fa:longint;
    begin
      sqlmaj.Active:=false;
      Sqlmaj.SQL.Text:='Select * From `monserveur`.`mabase` where `maj`='+(#39)+'non'+(#39);
      sqlmaj.active:=true;
      //sqlmaj.edit;
      //sqlmaj.first;
      while not sqlmaj.eof do
      begin
        //sqlmaj.Edit;
        fa:=FileAge(Sqlmaj.FieldByName('nom fichier').AsString);
        if fa<>-1 then
        begin
          S:=FileDateToDateTime(fa);
          //R:=now-S;
          //T:=round(R);
          T:=round(now-S);
          if T > SpinEdit1.Value then
          begin
            //result:=(sqlmaj.fieldbyname('mail').AsString);
            memo1.lines.add(sqlmaj.fieldbyname('mail').AsString);
          end;
        // A rajouter !
        end;
        //sqlmaj.post;
        sqlmaj.Next;
        //end;
      end;
      // A rajouter
      sqlmMaj.Active:=false;
    Autre question, le code fait-il partie d'une fonction (=la pertinence de result que j'ai supprimé) ?

  3. #3
    jpp
    jpp est déconnecté
    Membre confirmé Avatar de jpp
    Homme Profil pro
    en recherche d'emploi
    Inscrit en
    Mars 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : en recherche d'emploi

    Informations forums :
    Inscription : Mars 2003
    Messages : 52
    Par défaut presque ça !
    Merci Philippe,

    bon c'est presque ça, en effet, pas mal de lignes inutiles, j'ai essayé ta correction, c'est presque ça, mais ça boucle en permanence, je pense que on doit être entre les deux.

    Effectivement résult n'était pas utile, c'était un appel qui n'avait plus lieu d'être.

    je me remets dessus et je pense qu'avec tes conseils et un peu de caféine ça devrait aller.

    UNe quastion AMHA ca veut dire a mon humble avis ou american miniature horse association ?

  4. #4
    jpp
    jpp est déconnecté
    Membre confirmé Avatar de jpp
    Homme Profil pro
    en recherche d'emploi
    Inscrit en
    Mars 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : en recherche d'emploi

    Informations forums :
    Inscription : Mars 2003
    Messages : 52
    Par défaut ca y est ca marche
    bon voila le code final,
    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
     
    procedure Tmaj.SpeedButton1Click(Sender: TObject);
    var
      S:TDateTime;
      T:integer;
      fa:longint;
    begin 
        //initialisation du bousin
        memo1.lines.clear;
     
       sqlmaj.Active:=False;
       Sqlmaj.SQL.Text:='Select * From `monserveur`.`matable` where `maj`='+(#39)+'non'+(#39);
       sqlmaj.active:=true;
       //debut de la boucle EOF
       while not sqlmajcv.eof do
       begin 
         fa:=FileAge(Sqlmajcv.FieldByName('nom fichier').AsString);
         //test validite de l'age du fichier
         if fa<>-1 then
         begin
           S:=FileDateToDateTime(fa);
           T:=round(now-s);
          //test de comparaison de l'age du fichier
           if T > SpinEdit1.Value then
           begin 
                memo1.lines.add(sqlmajcv.fieldbyname('mail').AsString);
           end;
           //fin du test de comparaison de l'age du fichier
         end;
         //fin de test de validite de l'age du fichier
           sqlmajcv.Next;
         end; 
         //fin de la boucle EOF
         sqlmajcv.Active:=false;
    end;
    philippe ! Comme quoi un autre oeil c'est toujours utile !

  5. #5
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 786
    Par défaut
    Citation Envoyé par jpp Voir le message
    UNe quastion AMHA ca veut dire a mon humble avis ou american miniature horse association ?
    En toute humilité , un représentant d'une american association aurait plutôt dit : IMHO...

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

Discussions similaires

  1. [Access] Manque d'idées sur une requête
    Par portu dans le forum Langage SQL
    Réponses: 12
    Dernier message: 22/11/2004, 12h25
  2. Pb sur une requête SQL (de champ vide)
    Par Marion dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/07/2004, 11h12
  3. [LG]plantage sur une commande basique !
    Par Jeff on the web dans le forum Langage
    Réponses: 5
    Dernier message: 13/01/2004, 19h07
  4. Problème sur une requête INSERT
    Par Marion dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/06/2003, 08h45
  5. problème sur une requête!!!!!
    Par Mcgrady_01 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/06/2003, 01h17

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