Requête nom des tables d'une DB [Résolu]

Messages postés
5
Date d'inscription
mardi 13 mars 2007
Dernière intervention
3 avril 2007
- - Dernière réponse : cs_tyboo
Messages postés
5
Date d'inscription
mardi 13 mars 2007
Dernière intervention
3 avril 2007
- 3 avril 2007 à 14:50
Bonjour,

Je fais un logiciel sous visual basic2005, qui doit lire une base de donnée (non connue) et en ressortir les noms des tables pour les exploiter. Je passe par un driver ODBC. Mais impossible de trouver la requête du genre "SHOW TABLE" qui me permettrait d'obtenir les noms des tables.

Quelqu'un aurait la solution?

Voici le bout de code que j'utilise mais qui ne fonctionne pas du tout:
        Dim connection As New OdbcConnection("DSN=Base1")
        Dim command As New OdbcCommand
        Dim reader As OdbcDataReader
        connection.Open()

        command.CommandText = "SHOW TABLE"
        command.Connection = connection
        reader = command.ExecuteReader()

        MessageBox.Show(reader.Read)

        reader.Close()
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
5
Date d'inscription
mardi 13 mars 2007
Dernière intervention
3 avril 2007
3
Merci
Ayé!!

J'ai trouvé comment faire. Grace à un code un peu similaire en vb6 de Renfield

Voici un programme test qui énumére tous les noms de table de la DB Si quelqu'un d'autre est interressé:

 Dim connection As New OdbcConnection("DSN=Base1")
        Dim command As New OdbcCommand
        Dim var As DataTable
       connection.Open()
        var = connection.GetSchema("Tables")

        For Each element2 As DataRow In var.Rows
            MessageBox.Show(element2.Item(2))
        Next
        connection.Close()

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 91 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_tyboo
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
60
0
Merci
faire un OpenSchema

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Commenter la réponse de Renfield
Messages postés
5
Date d'inscription
mardi 13 mars 2007
Dernière intervention
3 avril 2007
0
Merci
Ok
J'ai essayé ca:
Dim connection As New OdbcConnection("DSN=Base1")
        Dim command As New OdbcCommand
     
        connection.Open()
        MessageBox.Show(connection.GetSchema().TableName)

Mais ca me sort "MetaDataCollections" ?? ca s'exploite comment?
J'ai pas trouvé le OpenSchema...
Commenter la réponse de cs_tyboo
Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Dernière intervention
19 septembre 2007
1
0
Merci
T'es obliger de passer par une requete car moi je fais ca et ca fonctionne tres bien,

Dim bdd As New ADOX.Catalog
Dim Tableau As ADOX.Table

Set bdd.ActiveConnection = acn   'Suivant ta connexion
i = 0
For Each Tableau In bdd.Tables
            Liste_des_tables.AddItem Tableau.Name, i
            i = i + 1
Next
Commenter la réponse de cs_Nicko11
Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Dernière intervention
19 septembre 2007
1
0
Merci
C'est du VBA mais il y a certainement un equivalent proche pour ce que tu cherche
Commenter la réponse de cs_Nicko11
Messages postés
5
Date d'inscription
mardi 13 mars 2007
Dernière intervention
3 avril 2007
0
Merci
Merci bien pour ton aide.
Mais le vba s'adapte mal sur vb2005.
Je n'ai pas trouvé d'équivallent à "Dim Tableau As ADOX.Table"
Je pense que l'idée de "connection.GetSchema()" est pas mal mais je ne sais pas l'exploiter. Je l'ai tourné dans tout les sens, à part "MetaDataCollections" c'est tout ce que j'obtient...
Commenter la réponse de cs_tyboo
Messages postés
346
Date d'inscription
jeudi 15 février 2007
Dernière intervention
24 avril 2010
0
Merci
voici la requete sql je suis débbutant en vb
select table_name from user_catalog;
Commenter la réponse de mimosa803
Messages postés
5
Date d'inscription
mardi 13 mars 2007
Dernière intervention
3 avril 2007
0
Merci
Heu mimosa803 es tu sur de ta requete? Je vois pas trop comment on peut connaitre tous les noms de table de la DB??
Ton table_name devient un tableau contenant les différents nom de table?

Sinon Renfield peux tu m'en dire plus sur "OpenSchema" ou "GetSchema" ? Je suis surement pas loin mais impossible d'y aboutir...
Commenter la réponse de cs_tyboo

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.