Recuperer liste des champs dans une bdd infor

Résolu
Pat -  
 Pat -
Bonjour,
je souhaiterais recupere la liste des champs d'une base de données informix.
pour chaque champs je voudrais avoir le nom mais surtout le type de données .
connaissez vous sil vous plait une solution (à travers un logiciel ou une programmation) à mon probleme?
merci d'avance pour votre aide
Configuration: Windows XP
Internet Explorer 7.0

4 réponses

  1. Utilisateur anonyme
     
    select tabname, tabid from systables where tabid>99
    le "> 99" c'est pour ne pas sélectionner les tables systèmes.

    Ensuite tu peux utiliser la requête suivante pour récupérer tous les champs d'une table :
    select colname from syscolumns where tabid = NUM_TABLE
    Pour connaître le type de données tu as un champs "coltype" dans la table syscolumns.

    Pour info :
                              COLTYPE             Code indicating the data type of the column:
                                    0         =          CHAR
                                    1         =          SMALLINT
                                    2         =          INTEGE R
                                    3         =          FLOAT
                                    4         =          SMALLFLOAT
                                    5 	  =          DECIMAL
    				6 	  =          SERIAL *
    				7         =          DATE
    				8         =          MONEY
    				9         =          NULL
    				10        =          DATETIME
    				11        =          BYTE
    				12        =          TEXT
    				13        =          VARCHAR
    				14        = 	     INTERVAL
    				15 	  = 	     NCHAR
    				16 	  = 	     NVARCHAR
    				17 	  = 	     INT8
    				18 	  = 	     SERIAL8 *
    				19 	  = 	     SET
    				20 	  = 	     MULTISET
    				21 	  = 	     LIST
    				22 	  = 	     Unnamed ROW
    				40 	  = 	     Variable-length
    				4118 	  = 	     Named ROW


    Bon courage ;-)
    1
    1. Pat
       
      merci pour répondre aussi vite!
      le probleme est que je n'ai pas acces aux tables syscolumns ou encore systables ,je vois juste à trevaers mon programme les tables qui ont été crées et non pas les tables systemes.
      Saurait tu comment je pourrais acceder à ces tables systemes?
      merci encore pour ton aide!!
      0
  2. Utilisateur anonyme
     
    A travers un programme ou en te connectant directement à ta base Informix ?
    0
    1. Pat
       
      Bonjour,
      je pense m'être mal exprimer par rapport à mon probleme
      en fait ,je dois trouver un equivalent à DESCRIBE (description des colonnes d'une tables) mais pouvant etre utilise avec INFORMIX car je souhaite afficher les attributs d'une table (ex :code_magasin) ainsi que leur type (ex : entier)

      c'est un peu complique comme bdd car il sagit d'une grosse base ac de nombreuses tables (60) et chaque table possede pas mal d'attrinuts (jusqua 150) et je cherche à ecrire un ptit vbs pour les tables que j'ai à répertoriier ( une dizaine)
      le vbs est prêt mais je n arrive pas à utiliser des requetes comme "describe" ou "show columns" et si je ne me trompe pas, c'est car ces fonctions ne sont pas utilisables avec une base de données Informix

      que penses tu que je pourrais faire?

      en te remerciant d'avance!
      0
  3. Utilisateur anonyme
     
    Exécuter les requêtes SQL que je t'ai donné plus haut.
    0
    1. Pat
       
      je n'arrive pas a executer ces requetes dans mon vbs.
      je pense que je vais changer d'appproche: je vais faire cela table par table
      par exemple pour une table CLIENTS dans une base Informix (numClient,nomClient,AddClient,TelClient) quelle requete je devrai utiliser pour avoir :numClient ==> int
      nomClient ==>char
      AddClient ==>char
      TelClient ==>int


      p.s. dsl si je suis quelque peu relou mais je decouvre totalement cet univers!

      merci pour toute cette aide en tout cas
      0
  4. Utilisateur anonyme
     
    SELECT colname, coltype FROM syscolumns WHERE tabid = (SELECT tabid FROM systables WHERE tabname = 'CLIENTS')
    Essaye cette requête ;-)
    0
    1. Pat
       
      c'est ok!ça marche!

      merci pour ton aide!!
      0