OVH Cloud OVH Cloud

liste des table d'une base MDB ("show tables" en SQL)

7 réponses
Avatar
Pas de Spam
bonjour,

voila je suis en train de me prendre la tête pour lister les table d'un
fichier mdb sans le connaître a l'avance

par exemple j'ai un fichier stock.mdb dans le quel j'ai trois tables
bureau,siege,perso

j'aimerais savoir comment en VB.NET 2005 (ou autre) faire pour ressortir les
table du fichier
en SQL il me semble que l'on pouvait utiliser la commande "show TABLES" qui
ressortait les tables du fichier

ce qui me permettrait par la suite de faire mes select avec les tables pour
remplir mon dataset qui contiendrait toutes mes tables

bref si j'ai pas était assez claire demander j'essayerais de développer un
peu plus

merci d'avance a ceux qui détiennent la solution....

7 réponses

Avatar
Pas de Spam
voici quand meme un petit exemlpe

dim cnx as oledb.oledbconnection
dim da as oledb.oledbdataadapter
dim ds as new dataset

cnx = new
oledb.oledbconnection("Provider=microsoft.jet......................")

cnx.open

da = new oledb.oledbdataadapter("Select * from bureau",cnx)
da.fill(ds)
da = new oledb.oledbdataadapter("Select * from siege",cnx)
da.fill(ds)
da = new oledb.oledbdataadapter("Select * from perso",cnx)
da.fill(ds)

ect.............


voila donc pour remplir mon ds avec trois table que je connais a l'avance
(bureau,siege et perso)

mais si je ne connais pas le nom des tables.... comment faire
comment les chargers dans mon ds (ce qui me permetrait apres de trouvez le
nom de chaque table)
ou tous simplement comment lister les tables du fichier mdb en SQL on
utilise "show tables" mais la je n'arrive pas a le passer message d'erreur
.il me demande d'uitliser uniquement les commandes de base de sql : select
insert,update......

ps: il y a peu etre quelques erreur dans mon bout de code precedent car
c'etait juste pour expliquer le principe que j'utilise
Avatar
Pas de Spam
j'ai essayer fillschema mais j'arive pas a trouver la liste des tables
Avatar
404 found
"Pas de Spam" a écrit :

j'ai essayer fillschema mais j'arive pas a trouver la liste des tables



utilise la cclasse schemaTabels !! fais des recherches sur msdn ou sur le
net pour un exemple !!
pas besoin de connaître les noms des tables !
Avatar
Pas de Spam
"404 found" a écrit dans le message de
news:
"Pas de Spam" a écrit :

j'ai essayer fillschema mais j'arive pas a trouver la liste des tables



utilise la cclasse schemaTabels !! fais des recherches sur msdn ou sur le
net pour un exemple !!



merci mais j'ai pas trouver ni sur le msdn ni sur google la class
"schemaTables" ou quelques choses qui ressemble

pas besoin de connaître les noms des tables !



alors la il faut que tu m'explique comment tu passe ta requête select sans
connaître le nom des tables ???
un petit exemple même 2 , 3 ligne pour que je vois ça !!!!!!
effectivement dans un dataset on peut par exemple utiliser .tables(x) mais
dans une requête SQL !!!!!!!!

cordialement,
Avatar
Pas de Spam
j'ai aussi oublier de precicer que j'ai essayer
MsysObjects

mais ca na pas l'air de marcher pour le moteur JET
Avatar
404 found
Voici un petit exemple pour une base SQL Server, je vais chercher un exemple
avec Access si tu n'y arrive pas :

j'ai mis une liste box (LstTables) où j'affiche les tables de la base

Public ListeTable As DataTable =
Connexion.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, _
New Object() {Nothing, Nothing, Nothing, "TABLE"})

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim MyListeRow As DataRow


For Each MyListeRow In ListeTable.Rows
LstTables.Items.Add(MyListeRow(2))
Next
End Sub

Pour connexion, j'ai utilisé une connexion OLEDB (qui devra aussi marcher
pour Access) trés simple !!

Bon courage !

"Pas de Spam" a écrit :


"404 found" a écrit dans le message de
news:
> "Pas de Spam" a écrit :
>
>> j'ai essayer fillschema mais j'arive pas a trouver la liste des tables
>>
> utilise la cclasse schemaTabels !! fais des recherches sur msdn ou sur le
> net pour un exemple !!

merci mais j'ai pas trouver ni sur le msdn ni sur google la class
"schemaTables" ou quelques choses qui ressemble

> pas besoin de connaître les noms des tables !

alors la il faut que tu m'explique comment tu passe ta requête select sans
connaître le nom des tables ???
un petit exemple même 2 , 3 ligne pour que je vois ça !!!!!!
effectivement dans un dataset on peut par exemple utiliser .tables(x) mais
dans une requête SQL !!!!!!!!

cordialement,






Avatar
Pas de Spam
ok jai trouver

il suffit de faire dans le bout de code que j'avais donner

ds.tables.add(cnx.getshema("Tables"))

pour avoir dans le dataset toutes les tables

encore merci a moi même ;-))))
et au autre aussi


"Pas de Spam" a écrit dans le message de news:
%
voici quand meme un petit exemlpe

dim cnx as oledb.oledbconnection
dim da as oledb.oledbdataadapter
dim ds as new dataset

cnx = new
oledb.oledbconnection("Provider=microsoft.jet......................")

cnx.open

da = new oledb.oledbdataadapter("Select * from bureau",cnx)
da.fill(ds)
da = new oledb.oledbdataadapter("Select * from siege",cnx)
da.fill(ds)
da = new oledb.oledbdataadapter("Select * from perso",cnx)
da.fill(ds)

ect.............


voila donc pour remplir mon ds avec trois table que je connais a l'avance
(bureau,siege et perso)

mais si je ne connais pas le nom des tables.... comment faire
comment les chargers dans mon ds (ce qui me permetrait apres de trouvez le
nom de chaque table)
ou tous simplement comment lister les tables du fichier mdb en SQL on
utilise "show tables" mais la je n'arrive pas a le passer message d'erreur
.il me demande d'uitliser uniquement les commandes de base de sql : select
insert,update......

ps: il y a peu etre quelques erreur dans mon bout de code precedent car
c'etait juste pour expliquer le principe que j'utilise