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

cs_tyboo 5 Messages postés mardi 13 mars 2007Date d'inscription 3 avril 2007 Dernière intervention - 2 avril 2007 à 08:39 - Dernière réponse : cs_tyboo 5 Messages postés mardi 13 mars 2007Date d'inscription 3 avril 2007 Dernière intervention
- 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
cs_tyboo 5 Messages postés mardi 13 mars 2007Date d'inscription 3 avril 2007 Dernière intervention - 3 avril 2007 à 14:50
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()

Merci cs_tyboo 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de cs_tyboo
Renfield 17308 Messages postés mercredi 2 janvier 2002Date d'inscription 22 août 2018 Dernière intervention - 2 avril 2007 à 08:45
0
Merci
faire un OpenSchema

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Commenter la réponse de Renfield
cs_tyboo 5 Messages postés mardi 13 mars 2007Date d'inscription 3 avril 2007 Dernière intervention - 2 avril 2007 à 08:57
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
cs_Nicko11 1141 Messages postés mercredi 7 mars 2007Date d'inscription 19 septembre 2007 Dernière intervention - 2 avril 2007 à 10:16
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
cs_Nicko11 1141 Messages postés mercredi 7 mars 2007Date d'inscription 19 septembre 2007 Dernière intervention - 2 avril 2007 à 10:17
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
cs_tyboo 5 Messages postés mardi 13 mars 2007Date d'inscription 3 avril 2007 Dernière intervention - 2 avril 2007 à 10:50
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
mimosa803 346 Messages postés jeudi 15 février 2007Date d'inscription 24 avril 2010 Dernière intervention - 2 avril 2007 à 22:15
0
Merci
voici la requete sql je suis débbutant en vb
select table_name from user_catalog;
Commenter la réponse de mimosa803
cs_tyboo 5 Messages postés mardi 13 mars 2007Date d'inscription 3 avril 2007 Dernière intervention - 3 avril 2007 à 09:26
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.