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

VB 6 et antérieur Discussion :

[VB6] RecordSet, Oracle, requête sur plusieurs Tables


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 150
    Points : 111
    Points
    111
    Par défaut [VB6] RecordSet, Oracle, requête sur plusieurs Tables
    Bonjour,


    J'ai un probléme avec les RecordSet de VB et Oracle. J'ai une requête dans laquelle j'effectue une jointure entre 2 tables, cette requête passe parfaitemenent en ligne de commande Oracle [via SQL*Plus Worksheet] mais dès lors que j'utilise mon recordset, celle ci ne retourne aucun enregistrement, j'ai pu le vérifier via la propriété recordCount (= 0), mais ne génére pas d'erreur.

    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
     
        'on efface les resultats de la précédente recherche
        listProp.ListItems.Clear
     
        connect	'fonction de connexion a la BDD
        Dim rcdRecord As ADODB.Recordset
        Set rcdRecord = New ADODB.Recordset
        Dim index As Integer
        Dim strRequete As String
        Dim strRecherche As String
     
        strRecherche = Replace(txtSearch.Text, "'", "''")
     
        'On formule la selection et la jointure de cette longue requête
        strRequete = "SELECT proprietaire.idProp,nomProp,preProp," & _
        "nomC,dateInscription," & _
        "ville,typeVoie,nomVoie " & _
        "FROM proprietaire,adrProprietaire " & _
        "WHERE proprietaire.idProp = adrProprietaire.idProp "
    [...]
     
        'Une fois celle ci formulé, on l'exécute et on affiche les resultats
        'dans notre listView
        rcdRecord.Open strRequete, connexion
     
        'txtSearch.Text = strRequete
     
        index = 1
        While rcdRecord.EOF = False
                [...]
                index = index + 1
                rcdRecord.MoveNext
        Wend
     
        rcdRecord.Close
    J'ai l'impression que l'erreur provient du fait que la requête cible 2 tables, d'ailleurs un simple "SELECT * FROM proprietaire" marche, alors qu'un "SELECT * FROM proprietaire, adrProprietaire" ne fonctionne pas (alors qu'il passe trés bien en ligne de commande oracle).

    Je sais que cette requête est syntaxiquement correctement niveau sql. Je ne vois pas d'où vient l'erreur, je ne connais pas tout sur les RecordSet de VB j'ai d'ailleurs commencé la lecture de ce document ftp://ftp2.developpez.be/developps/v...sets%20ADO.pdf où je trouverai peut être les réponses a mon problème mais au cas ou quelqu'un aurai la réponse ca me permettrai d'aller plus vite...

  2. #2
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Un peu au hasard, si tu fais
    juste avant ta boucle sur les éléments, ça change quelquechose?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 150
    Points : 111
    Points
    111
    Par défaut
    Non, car comme je le disais, la requête passe sans erreur mais elle retourne aucun enregistrement (alors qu'en ligne de commande elle en retourne), si on fait un moveFirst on se retrouve donc a une erreur du type EOF.

  4. #4
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Une petite idée: tu fais ta jointure avec WHERE. Ce n'est peut-être pas compris par ADO...
    Si tu réécris ta jointure en SQL "académique", avec INNER JOIN, ou OUTER JOIN, est-ce que ça ne marche pas mieux?
    Mais je suis un naze en SQL (en fait, j'ai été bon (enfin, pas trop mauvais...), mais il-y-a tellement longtemps que je n'y ai plus touché...)

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 150
    Points : 111
    Points
    111
    Par défaut
    Ok, je vais essayer comme ca, mais d'un autre coté pourquoi lorsque je fais une requête du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM table1,table2
    Cela ne me retourne rien, alors que ca devrait me retourner le produit des 2 tables.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 150
    Points : 111
    Points
    111
    Par défaut
    Bon...

    Alors là je sais pas comment expliquer ce qu'il vient de se passer, mais ce matin j'arrive au bureau, j'allume le pc, je lance le programme et là, la requête passe impecablement alors que je n'ai touché à rien depuis hier !!!

    Encore un mystére de l'informatique inexplicable.

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

Discussions similaires

  1. suite au problème de requête sur plusieur table
    Par michelGProuq dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 07/07/2006, 16h19
  2. [Oracle] Requête sur 3 tables, sortie fichier
    Par Bast92 dans le forum Langage SQL
    Réponses: 20
    Dernier message: 18/04/2006, 15h33
  3. Requête sur plusieurs tables
    Par sta_schmitt dans le forum Requêtes
    Réponses: 2
    Dernier message: 28/03/2006, 13h54
  4. Requéte sur plusieurs tables
    Par polux23 dans le forum Requêtes
    Réponses: 11
    Dernier message: 23/02/2006, 23h00
  5. Requête sur plusieurs tables
    Par drinkmilk dans le forum Langage SQL
    Réponses: 8
    Dernier message: 11/07/2005, 12h25

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