Recuperer liste des champs dans une bdd infor

Résolu/Fermé
Pat - 7 avril 2008 à 16:59
 Pat - 9 avril 2008 à 09:03
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
A voir également:

4 réponses

Utilisateur anonyme
7 avril 2008 à 17:10
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
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
Utilisateur anonyme
8 avril 2008 à 11:47
A travers un programme ou en te connectant directement à ta base Informix ?
0
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
Utilisateur anonyme
8 avril 2008 à 12:04
Exécuter les requêtes SQL que je t'ai donné plus haut.
0
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
Utilisateur anonyme
8 avril 2008 à 14:47
SELECT colname, coltype FROM syscolumns WHERE tabid = (SELECT tabid FROM systables WHERE tabname = 'CLIENTS')
Essaye cette requête ;-)
0
c'est ok!ça marche!

merci pour ton aide!!
0