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 :

Problème de pointeur avec un TQuery


Sujet :

Bases de données Delphi

  1. #1
    Membre chevronné Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Points : 1 967
    Points
    1 967
    Par défaut Problème de pointeur avec un TQuery
    Bonjour

    J'essaye de mettre le résultat d'un select dans un tableau. Le problème c'est que quand j'execute mon programme j'ai le message d'erreur : "Opération de pointeur incorrecte". J'ai beau chercher sur le net, je ne trouve pas l'erreur dans mon code...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        query_corUpd.Close;
        query_corUpd.sql.clear;
        query_corUpd.sql.add('select IDTABLE from '+NomTable);
        query_corUpd.sql.add('where ANOMALIE = ''CM'' and CORRVILLE = '''+trim(copy(ville.Text,1,32))+''' and CORRCP = '''+cp.Text+'''');
        query_corUpd.open;
        //query_corUpd.first;
        SetLength(tabid,query_corUpd.RecordCount-1);
        i := 0;
        while not query_corUpd.eof do
        begin
             tabid[i] := query_corUpd.Fieldbyname('IDTABLE').AsString;
             Inc(i);
             query_corUpd.next;
        end;
    Quelqu'un voit-il où est mon erreur ?
    Merci

  2. #2
    Membre actif Avatar de Fares BELHAOUAS
    Homme Profil pro
    Développeur Flex & Java
    Inscrit en
    Mars 2002
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Flex & Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 182
    Points : 252
    Points
    252
    Par défaut
    Salam

    query_corUpd.open;
    //query_corUpd.first;
    SetLength(tabid,query_corUpd.RecordCount-1);
    Vérifie si ta requete retourne un RecordCount, car quelques SGBD ne supporte pas cette fonction.

    Si c'est le cas utilise une autre requête qui te calcul le nombre d'enregistrement de ta requête:

    pour cela il suffit de modifier un peu ta requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
       query_corUpd.Close; 
        query_corUpd.sql.clear; 
        query_corUpd.sql.add('select IDTABLE from '+NomTable); 
        query_corUpd.sql.add('where ANOMALIE = ''CM'' and CORRVILLE = '''+trim(copy(ville.Text,1,32))+''' and CORRCP = '''+cp.Text+''''); 
        query_corUpd.open;
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
       query_corUpd.Close; 
        query_corUpd.sql.clear; 
        query_corUpd.sql.add('select COUNT(IDTABLE) from '+NomTable); 
        query_corUpd.sql.add('where ANOMALIE = ''CM'' and CORRVILLE = '''+trim(copy(ville.Text,1,32))+''' and CORRCP = '''+cp.Text+''''); 
        query_corUpd.open;
    Cette dernière te donne le nombre d'enregistrements résultants.

  3. #3
    Membre chevronné Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Points : 1 967
    Points
    1 967
    Par défaut
    c'est bon j'ai réussi à trouver d'où venait l'erreur qui était en fait juste après !
    Merci quand même pour l'aide

  4. #4
    Membre actif Avatar de Fares BELHAOUAS
    Homme Profil pro
    Développeur Flex & Java
    Inscrit en
    Mars 2002
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Flex & Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 182
    Points : 252
    Points
    252
    Par défaut
    Salem,

    Autre chose, il faut écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SetLength(tabid,query_corUpd.RecordCount);
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SetLength(tabid,query_corUpd.RecordCount-1);
    Bon courage

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

Discussions similaires

  1. [Smart Ptr] Problème de pointeur avec ASIO
    Par Raz-X dans le forum Boost
    Réponses: 2
    Dernier message: 18/08/2011, 10h07
  2. Réponses: 4
    Dernier message: 28/05/2008, 01h55
  3. Problème de pointeurs avec un tableau
    Par Tom_Tom_RoF dans le forum Fortran
    Réponses: 8
    Dernier message: 05/10/2007, 18h34
  4. problème de pointeur avec les listes chainees
    Par innosang dans le forum C
    Réponses: 9
    Dernier message: 30/12/2005, 16h46
  5. Problèmes de pointeurs avec les arbres
    Par thierry57 dans le forum C
    Réponses: 17
    Dernier message: 23/12/2005, 00h35

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