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 :

[TQuery] problème de fermeture


Sujet :

Bases de données Delphi

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2003
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 9
    Points : 8
    Points
    8
    Par défaut [TQuery] problème de fermeture
    bonjour ! voila je dois créer une application qui gère une base de données et je suis face à un problème : avant de faire des modifs dans la base de données je vérifie quelques valeurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    procedure TfrmAjoutRes.RetourneNbOccurence(OUT nb : integer);
    begin
        QueryGroupe.Active := false;
        QueryGroupe.SQL.clear;
        QueryGroupe.SQL.Add('Select * from groupe where num_grp = ' + DBENum.text);
        QueryGroupe.ExecSQL;
        QueryGroupe.Active := true;
        nb := QueryGroupe.RecordCount;
        QueryGroupe.Active := false;
    end;
    Et delphi ne supporte pas quand je veut désactiver un query avec aucune valeur dedans. Je ne vois pas pourquoi il ne veut pas. Il me dit que cet opération nécessite un enregistrement actuel et que celui a peut être été supprimé... Maintenant il y peut être plus simple pour vérifier des données en base de données, je suis ouvert à toutes les idées.
    merci d'avance

  2. #2
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Points : 1 181
    Points
    1 181
    Par défaut
    Essaie Close à la place de active := false pour voir.

    A+
    On progresse .....

  3. #3
    Membre expert

    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2004
    Messages
    2 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 123
    Points : 3 256
    Points
    3 256
    Par défaut
    De plus lors de l'interrogation de données, j'utiliserais plutot Open que ExecSQL(prévu pour modification des données).

    A+
    CV :
    - LinkedIn
    - Viadeo

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 29
    Points : 26
    Points
    26
    Par défaut
    Note que si tu fais Open, je ne vois pas l'interet de la ligne
    active := true

  5. #5
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Points : 4 006
    Points
    4 006
    Par défaut
    active := true <==> Open;
    active := false <===> Close;

    ExecSql est utilisé pour les requêtes qui ne retournent aucun ensemble de donnée (Insert par exemple). Donc il te fallait utiliser Open.

    D'autre part, je ferai une requête au lieu d'un recordCount, c'est à dire écrire quelque chose comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure TfrmAjoutRes.RetourneNbOccurence(OUT nb : integer); 
    begin 
        QueryGroupe.Close;
        QueryGroupe.SQL.clear; 
        QueryGroupe.SQL.Text := 'Select count(*) as Total from groupe where num_grp = ' + DBENum.text);  
        QueryGroupe.Open; 
        nb := QueryGroupe.FieldByName('Total').AsInteger; 
        QueryGroupe.Close; 
    end;

  6. #6
    Futur Membre du Club
    Inscrit en
    Novembre 2003
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    merci de vos réponses très précises elles m'on aidé a avancé dans mon application.
    merci bcp !

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/05/2005, 09h12
  2. [MFC] CSocket ... problème à la fermeture
    Par Yellowmat dans le forum MFC
    Réponses: 7
    Dernier message: 29/04/2005, 15h37
  3. [Thread][socket]Problème de fermeture d'un thread
    Par meda dans le forum Concurrence et multi-thread
    Réponses: 4
    Dernier message: 04/11/2004, 01h03
  4. Problème de fermeture de l'application
    Par SkyDev dans le forum Langage
    Réponses: 2
    Dernier message: 16/06/2004, 02h06
  5. Problème de fermeture de balise <tr>
    Par nuage dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 18/03/2004, 09h55

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