Récupérer le type d'un champ

Récupérer le type d'un champ - SQL/NoSQL - Programmation

Marsh Posté le 13-09-2005 à 18:39:17    

Bonjour à tous,  
 
Comment faire pour récupérer le type d'un champ de stockage d'une base SQL via une requete.  
 
ex: je crée une requete sql du style "select mon_champ from ma_table" et je voudrai en plus de la valeur, récupérer le type du champ mon_champ (char, int, bool, ...)
 
Voila.
 
 
Merci d'avance pour vos réponses...

Reply

Marsh Posté le 13-09-2005 à 18:39:17   

Reply

Marsh Posté le 14-09-2005 à 09:26:25    

En une seule requette c'est pas possible, mais normalement, toutes les bases de données ont une requette permettant de récupérer des infos (entre autre le type du champ) sur les colones d'une table.
Tant que tu ne nous auras pas dit qu'elle base de donnée t'utilises on ne peut pas t'aider alors soit tu consulte  la doc de la base de donnée, soit tu nous donnes cette info.

Reply

Marsh Posté le 14-09-2005 à 13:15:46    

Merci pour la réponse!
 
Désolé pour cette omission!  
J'utilise une BDD SQL SERVER.
 
Mais si ce n'est pas possible de récupérer le tout en une seule requete, je vais devoir m'orienter vers une autre solution sous peine de me trouver confronté à une multiplication importante du nombre de requete.
 
Merci beaucoup pour cette précision.
 
A plus tard.

Reply

Marsh Posté le 14-09-2005 à 22:47:53    

Code :
  1. select soc.codsoc, sc.type
  2. from soc, syscolumns sc, sysobjects so
  3. where so.xtype = 'U'
  4. and so.name = 'soc'
  5. and sc.id = so.id
  6. and sc.name = 'codsoc'


 
Il faut aussi regarder les champs "length", "scale" et "precision" afin de récupérer les informations étendues du type.
 
Le type est au format "ADO", c'est à dire que le nombre récupéré correspond à la liste de constantes "adVarchar, adInteger, etc."

Reply

Marsh Posté le 14-09-2005 à 22:49:08    

PS: tu noteras qu'il n'y a pas de relation entre "soc" et les tables "sys*", c'était juste histoire de rammener avec une requête unique...

Reply

Marsh Posté le 14-09-2005 à 22:51:51    

Tu peux aussi récupérer le type comme ça :

Code :
  1. exec sp_columns @table_name = 'soc', @column_name = 'codsoc'


 
=> Ca rammène plein de colonnes, donc une avec le type écrit en toutes lettres.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed