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

Autres SGBD Discussion :

[tables systèmes] extraction de la structure d'une base


Sujet :

Autres SGBD

  1. #1
    Membre éclairé

    Développeur Web
    Inscrit en
    Mars 2002
    Messages
    412
    Détails du profil
    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2002
    Messages : 412
    Points : 657
    Points
    657
    Par défaut [tables systèmes] extraction de la structure d'une base
    Je souhaite récupérer la structure d'une base de données à partir d'une connexion par JDBC (je travaille en Java). Ou bien par ODBC car il existe une passerelle JDBC/ODBC .

    Voici les infos dont j'ai besoin, à partir d'une connexion à une base de données :
    - les tables (leur nom)
    - pour chaque table: les colonnes (nom, type, isNotNull, taille si c'est du varchar ou char)
    - pour chaque table: les clefs étrangères, c-à-d les colonnes qui référencent (la fk) et les colonnes référencées (la pk)
    - pour chaque table: les contraintes uniques
    - pour chaque table: les colonnes composant la clef primaire

    Je souhaite faire ce boulot pour :
    * PostGreSQL
    * MS SQL Server
    * Access
    * Oracle
    * Interbase

    Je sais que les tables systèmes ne sont pas standards.

    Question : existe-t'il des fonctions génériques au niveau du driver ODBC ou JDBC ? Sinon, quelqu'un a-t'il des éléments d'informations pour un de ces SGBD ?

    Mon problème est surtout pour récupérer les clefs étrangères. Pourtant c'est possible car plusieurs logiciels de conception de bdd le font.

    Thomas

  2. #2
    Expert confirmé
    Avatar de Petrus
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 412
    Points : 5 922
    Points
    5 922
    Par défaut
    Salut,

    Oui tu peux extraire les méta informations de la base de données avec JDBC. Il y a les classes et méthodes dont tu a besoin ici :

    http://java.sun.com/j2se/1.4/docs/ap...e-summary.html

    Bien sur l'API JDBC du distributeur du SGBD peut différer. Reportes toi alors a la documentation de l'API constructeur.
    Je l'ai utilisé pour PostgreSQL et Oracle mais je ne sais pas pour les autres .


  3. #3
    Membre éclairé

    Développeur Web
    Inscrit en
    Mars 2002
    Messages
    412
    Détails du profil
    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2002
    Messages : 412
    Points : 657
    Points
    657
    Par défaut
    Merci Pierre !

    j'ai testé et ça marche nickel pour Interbase par JDBC. Donc ça marchera aussi pour Oracle et PostGreSQL à priori. Donc merci beaucoup.

    Par contre pour Access et SQL Server je souhaiterai travailler avec les driver ODBC (car pour eux les drivers jdbc sont peu répandus).

    Est-il possible de récupérer la définitions des clefs-étrangères dans les tables systèmes d'Access et SQL Server?

    Thomas

  4. #4
    Expert confirmé
    Avatar de Petrus
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 412
    Points : 5 922
    Points
    5 922
    Par défaut
    Salut,

    La c'est une colle pour moi, et je ne me suis jamais interessé plus que ca a ODBC, je ne sais donc pas si l'on peut avoir acces aux meta infos d'une base avec ODBC, a+


  5. #5
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 224
    Points : 19 567
    Points
    19 567
    Billets dans le blog
    25
    Par défaut
    Pour MS-SQL Server, ça ressemble étrangement à du Sybase, donc les infos doivent se trouver principalement dans

    select id, name from sysobjects where type in ("U", "S") pour les tables
    select id, indid from sysindexes pour les indexes, clés, etc
    select objid, name from syscolumns pour les infos par colonne
    select * from systypes pour retrouver le type de chaque colonne

    Pour plus d'info, procure-toi le modèle de donnée des tables système de MS SQL Server et d'Access.

  6. #6
    Futur Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 6
    Points : 6
    Points
    6
    Par défaut extraire des informations à partir de JDBC ou ODBC
    salut, je travaille presque sur le même sujet ("analyseur de requêtes d'accès au serveur de base de données), sauf que moi je dois récupérer les requêtes que lance un client sur un serveur de base de données dans le but de les analyser plus tard.
    Je veux savoir est t'il possible à travers JDBC ou ODBC de récuperer des informations sur ces requêtes et sur les réponses du serveur, car normalement toutes les requêtes et les répones passent par le JDBC / ODBC...
    sinon avez vous une idée sur comment récupérer une telle information autrement...

    Merci de vos réponses

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 862
    Points : 53 015
    Points
    53 015
    Billets dans le blog
    6
    Par défaut
    Les définitions de la structure d'une BD est normalisée depuis SQL2 (1992) par des vues d'information de schéma présente notamment sous MS SQL Server depuis la version 7.

    Lisez l'article que j'ai écrit à ce sujet :
    http://sqlpro.developpez.com/cours/s...age=partie2#L9

    A +

Discussions similaires

  1. recuperation de la structure d'une base
    Par pascalT dans le forum 4D
    Réponses: 7
    Dernier message: 07/06/2006, 15h32
  2. Vb.Net et Access : comment modifier la structure d'une base
    Par hucliez dans le forum Accès aux données
    Réponses: 3
    Dernier message: 09/11/2005, 13h33
  3. Importer la structure d'une base de donnée dans un combobox
    Par hanines dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 23/09/2005, 22h41
  4. lire la structure d'une base de données
    Par ilyassou dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 31/08/2005, 07h00
  5. exporter la structure d'une base Sybase en ascii
    Par Jean-Cyp dans le forum Sybase
    Réponses: 5
    Dernier message: 05/11/2002, 16h15

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