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

C++Builder Discussion :

probleme de selection avec access


Sujet :

C++Builder

  1. #1
    Membre confirm�
    Inscrit en
    Mai 2006
    Messages
    188
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 188
    Par d�faut probleme de selection avec access
    bonjour,

    voila mon probleme:
    avec BDE (cf:http://ricky81.developpez.com/tutoriel/bcb/bde/ ), j'ai fait une connexion a ma base mysql et aucun pb, �a marche .
    je fais la meme chose vers une base access2000, pas de pb apparent de connexion mais j'essaie diverses requetes (meme du select * from maTable, toutes test�e avec access2000) et j'ai toujours Query1->RowAffected = -1

    Apres cr�ation de pls alias, avoir recommenc� les operations de placement et definition des tsession, tdatabase, tquery sans resultat , je ne comprend vraiment pas d'ou cela peut venir (surtout que pas de pb avec mysql).

    merci de vos reponses
    a+

  2. #2
    Membre confirm�
    Inscrit en
    Mai 2006
    Messages
    188
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 188
    Par d�faut
    en passant par une ttable ca marche car je n'ai qu'un select de base a faire pour le moment.
    Mais comme a un moment ou un autre faudra une tquery, je reste ouvert a toute suggestion.

  3. #3
    Membre exp�riment�
    Avatar de lanonyme
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    229
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 229
    Par d�faut
    Bonjour,

    Peut tu donner un peu plus de code, comme la phase de connexion, la creation de la requete, l'affectation et l'execution ??

    lanonyme

    PS: attention dans ton lien, la parenthese est coll�, sa cr�e un lien erron�

  4. #4
    Membre confirm�
    Inscrit en
    Mai 2006
    Messages
    188
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 188
    Par d�faut
    Pour la connexion je passe par un tsession, un tdatabase et je me sers seulement des proprietes de ces composants et pour cette partie aucun pb puisque apres avec un ttable ca marche, le lien est fait avec la base et il me propose la liste des tables de ma bd.

    la requete: j'utilise tquery et dans la prop "SQL" j'ai ma requete "select champ1,champ2,champ3 from table1"

    ensuite dans le code je me contente pour le moment de faire
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    Masession->open();
    MaDatabase->open();
    Marequete->open();
    Marequete->First();
    ShowMessage(Marequete->RowsAffected);
    puis je feme
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    Marequete->Close();
    MaDatabase->Close();
    Masession->Close();
    et �a marche tres bien avec mysql
    et comme �a marche aussi avec access et 1 ttable, je pige plus rien.

  5. #5
    Membre exp�riment�
    Avatar de lanonyme
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    229
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 229
    Par d�faut
    Bonjour,
    A la place de :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    Marequete->open();
    Marequete->First();
    mettre
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
       Marequete->SQL->Clear();
       Marequete->SQL->Add("select champ1,champ2,champ3 from table1");
       Marequete->Prepared = true;
       Marequete->ExecSQL() ;
    Si j'ai bien compris Marequete est un Query ...

    lanonyme

  6. #6
    Membre confirm�
    Inscrit en
    Mai 2006
    Messages
    188
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 188
    Par d�faut
    oui oui tu as tout compris.

    j'ai essay� avec ta solution mais j'obtiens tjrs un "-1" pour RowsAffected.

    Petite precision: avec la ttable ca marche mais c'est tres tres lent (pour 3500 lignes seulement). C'est pour ca que je voudrais ne prendre que les infos necessaires a l'aide d'une Query.

    En tout cas merci pour ton aide.
    Tu gagne a etre connu lanonyme

  7. #7
    Membre exp�riment�
    Avatar de lanonyme
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    229
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 229
    Par d�faut
    Bonjour,

    Citation Envoy� par mike600river
    Tu gagne a etre connu lanonyme
    euh ... pas s�r

    J'ai fait une boulette, pour la selection c'est :
    Le ExecSQL() c'est pour les autres type de requetes.

    Citation Envoy� par Aide Borland
    Consultez RowsAffected pour d�terminer le nombre de lignes modifi�es ou supprim�es par la derni�re ex�cution de la requ�te. Si aucune ligne n'a �t� modifi�e ou supprim�e, RowsAffected a la valeur z�ro. RowsAffected a la valeur �1 si l'instruction SQL n'a pu �tre ex�cut�e en raison d'une condition d'erreur. Cette situation devrait normalement suivre le d�clenchement d'une exception.
    Ce qui me laisse penser que c'est normal que tu as -1, vu que tu ne modifie rien

    lanonyme

  8. #8
    Membre exp�riment�
    Avatar de lanonyme
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    229
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 229
    Par d�faut
    C'est pour ca que je voudrais ne prendre que les infos necessaires a l'aide d'une Query.
    Qu'est que tu attend exactement comme "infos necessaires"

    lanonyme

  9. #9
    Membre confirm�
    Inscrit en
    Mai 2006
    Messages
    188
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 188
    Par d�faut
    dsl, c vrai que c pas clair si on n'est pas a ma place : infos necessaires: la table de depart a 76 colonnes et je n'ai besoin d'en prendre que 4.

    Quand la requete s'execute, mon RowsAffected renvoi -1 mais je n'ai pas de message d'erreur.

  10. #10
    Membre exp�riment�
    Avatar de lanonyme
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    229
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 229
    Par d�faut
    Bonjour,

    La propri�t� RowsAffected est affect� si et seulement si tu execute une commande pour modifier ta bdd.
    En l'occurence, tu fait un select donc aucune modification ...

    Apres c'est a toi de parcourir ton Query :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
     while(!Marequete->Eof)
     {
         Edit1->Text = Marequete->FieldByName("eventstatus);
         // Enregistrement suivant
         Marequete->Next();
     }
    Il est pas possible de savoir combien de ligne on �t� recup�r� sans les avoir lu ...

    lanonyme

  11. #11
    Membre confirm�
    Inscrit en
    Mai 2006
    Messages
    188
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 188
    Par d�faut
    merci bcp l'anonyme ca marche mieux comme ca.

    La question que je me pose c'est qu'avec ma base mysql j'ai ce code la:
    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
    36
    37
    Query_select_orcad->Open();
      // on se positionne au début
      Query_select_orcad->First();
      //on redimensionne la stringgrid orcad 
      StringGrid_orcad->RowCount=Query_select_orcad->RowsAffected+1;
      //Création du vecteur  de taille : nb de lignes de la requete
      tableau = new String * [Query_select_orcad->RowsAffected];
      for (int ligne=0; ligne<Query_select_orcad->RowsAffected;ligne++)    {
        // pour chaque élément du vecteur création d'un nouveau vecteur    
        tableau[ligne]=new String [Query_select_orcad->FieldCount];
      } 
      for (int ligne = 0 ; ligne < Query_select_orcad->RowsAffected ; ligne++)
      {
        // on récupère les champs
        value = Query_select_orcad->FieldByName("value")->AsString;
        sourcepackage = Query_select_orcad->FieldByName("sourcepackage")->AsString;
        pcbfootprint = Query_select_orcad->FieldByName("pcbfootprint")->AsString;
        sourcelibrary = Query_select_orcad->FieldByName("sourcelibrary")->AsString;
        datasheet = Query_select_orcad->FieldByName("datasheet")->AsString;
        lien=Query_select_orcad->FieldByName("lien")->AsString;
        // on rempli la stringgrid
        StringGrid_orcad->Cells[0][ligne+1]= value ;
        StringGrid_orcad->Cells[1][ligne+1]= sourcepackage ;
        StringGrid_orcad->Cells[2][ligne+1]= pcbfootprint ;
        StringGrid_orcad->Cells[3][ligne+1]= sourcelibrary ;
        StringGrid_orcad->Cells[4][ligne+1]= datasheet ;
        //on rempli le tableau
        tableau[ligne][0]=value;
        tableau[ligne][1]=sourcepackage;
        tableau[ligne][2]=pcbfootprint;
        tableau[ligne][3]=sourcelibrary;
        tableau[ligne][4]=datasheet;
        // MessageDlg(tab_orcad[0][i-1], mtInformation, TMsgDlgButtons() << mbOK, 0);
        // on passe à la ligne suivante
        Query_select_orcad->Next();
      }  
      Query_select_orcad->Close();
    et que ca fonctionne, le RowsAffected me renvoie bien le nb de lignes de la table.

    encore merci pour ton aide.
    c'est un sacr� coup de paluche que tu m'as donn�.

  12. #12
    Membre confirm�
    Inscrit en
    Mai 2006
    Messages
    188
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 188
    Par d�faut
    je suis un

    Il y a un RecordCount qui fait exactement ce que je cherchais chez le RowsAffected.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
     ShowMessage(Query_local->RecordCount);

  13. #13
    Membre exp�riment�
    Avatar de lanonyme
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    229
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 229
    Par d�faut
    Citation Envoy� par mike600river
    je suis un

    Il y a un RecordCount qui fait exactement ce que je cherchais chez le RowsAffected.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
     ShowMessage(Query_local->RecordCount);
    C'est normal, on cherche toujours a faire compliquer
    (Pour ne pas heurt� la sensibilit�, je parle surtout de moi )

    Enfin, on apprend c'est le principal

    lanonyme

  14. #14
    Membre confirm�
    Inscrit en
    Mai 2006
    Messages
    188
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 188
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    C'est normal, on cherche toujours a faire compliquer  
    (Pour ne pas heurté la sensibilité, je parle surtout de moi  )
    Je crois que c'est bien pareil pour moi.

    Merci de ton aide, �a marche et en plus j'ai appris plein de petites choses.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. probleme de compatibilit� avec access
    Par levac dans le forum VB 6 et ant�rieur
    R�ponses: 5
    Dernier message: 18/07/2007, 15h39
  2. probleme de SELECT avec VB6
    Par jos�maria dans le forum MS SQL Server
    R�ponses: 2
    Dernier message: 20/02/2007, 18h12
  3. R�ponses: 4
    Dernier message: 02/08/2006, 08h42
  4. [XSLT] Probleme de selection avec namespaces
    Par Ludo_xml dans le forum XSL/XSLT/XPATH
    R�ponses: 2
    Dernier message: 01/06/2005, 14h32
  5. probleme requete select avec 2 colonnes
    Par cricri45000 dans le forum Langage SQL
    R�ponses: 4
    Dernier message: 21/04/2005, 10h39

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