Connaitre le type de colonne

Messages postés
73
Date d'inscription
samedi 9 juillet 2005
Statut
Membre
Dernière intervention
14 août 2007
- - Dernière réponse : Renfield
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
- 13 mai 2008 à 10:20
Bonjour

Je souhaiterais à l'aide de la méthode OpenSchema connaitre également le type de données d'une colonne. Actuellement, j'arrive à connaitre les noms de colonne, mais je n'arrive pas à connaitre le type de données de la colonne.

Cela est sans doute simple mais je n'ai pas réussi à trouver la fonction dans l'aide msdn. Si quelqu'un pouvait me dépanner, merci d'avance.

Pierre
Afficher la suite 

8 réponses

Messages postés
73
Date d'inscription
samedi 9 juillet 2005
Statut
Membre
Dernière intervention
14 août 2007
0
Merci
J'entend par type de colonne pour savoir si c'est un champ texte, date, etc ...

Meric d'avance

Pierre
Commenter la réponse de drouault
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
61
0
Merci
Salut
Comme tu aurais dû le faire, je suis allé sur le site msdn, j'ai tapé OpenSchema et j'y ai trouvé les infos suivantes ( /library/en-us/ado270/htm/mdmthopenschema.asp lien ).
La méthode OpenSchema utilise le format suivant :
Set recordset = connection.OpenSchema(QueryType, Criteria, SchemaID)
Dans le QueryType, une cinquantaine de constantes permettent de ressortir les infos nécessaires.
Reporte toi à cette page qui explique comment faire en fonction du type de moteur que tu utilises pour ta connexion : clique ici mais ça n'a pas l'air très simple.
Bien sûr, c'est en anglais
Eventuellement, analyse cette source relativement indigeste : clique ici qui fournit tous ces renseignements

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
Commenter la réponse de cs_Jack
Messages postés
73
Date d'inscription
samedi 9 juillet 2005
Statut
Membre
Dernière intervention
14 août 2007
0
Merci
Merci de ta réponse Jack. J'ai deja consulter l'aide msdn avant de poster et je n'y est pas trouver cer que je cherchais, à savoir quer je fais un OpenSchema(AdSchemaColumns) qui me renvoie bien le nom de chaque colonne, aprés que l'utilisateur est sélectionner la table dans la liste des tables que je recherche avec OpenSchema(AdSchemaTable). Ce que je souhaite ici, c'est pouvoir récupérer en plus du nom de ma table le type de données contenus dans ma colonne, à savoir du texte, des dates, etc ...
Si tu consultes l'aide msdn aussi, tu t'apercevras que la propriété AdSchemaColumn ne contient que quatre variables, dont 3 font référence à la table rattachée et une au nom de la colonne. Je cherche donc s'il existe une variable supplémentaire "TYPE" sur cette propriété.
Sachant que j'ai une valeur "TYPE" sur Adschematable mais que je ne sais pas à quoi elle sert vraiment vu que n'y ai pas compris grand chose à leurs explications ...

En espérant avoir été clair ....

Cordialement

Pierre
Commenter la réponse de drouault
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
57
0
Merci
il te suffit de fire :


sTableName = "MaTable"

Set RS = moDataBase.OpenSchema(adSchemaColumns, Array(vbNullString, vbNullString, sTableName))


ensuite, tu parcoure ton RecordSet....


le type de donnée ( RS.Fields("DATA_TYPE").Value ) est contenu dans l'enum ADODB.DataTypeEnum

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Commenter la réponse de Renfield
Messages postés
36
Date d'inscription
mardi 25 janvier 2005
Statut
Membre
Dernière intervention
28 juin 2008
0
Merci
Bonjour,
cette derniere ligne de code me rend vraiment service : ca fait trois jours que j'essaie de faire ca !!

Mais avez vous une idee de comment savoir si le champ est "Unsigned" ?

Merci
Commenter la réponse de djtrefle
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
57
0
Merci
toi, t'as pas pressé F2, pour regarder la liste des constantes de ADODB.DataTypeEnum ...

adUnsignedBigInt
adUnsignedInt
adUnsignedSmallInt
adUnsignedTinyInt
Commenter la réponse de Renfield
Messages postés
36
Date d'inscription
mardi 25 janvier 2005
Statut
Membre
Dernière intervention
28 juin 2008
0
Merci
ah merci bien pour l'histoire du F2 ! je ne connaissais pas du tout. Ca a l'air d'etre assez pratique.

Mais j'ai quand meme un peu de mal alors j'y arrive toujours pas.
Quand je fais ADODB.DataTypeEnum.adUnsignedInt ca me retourne toujours 19 meme quand l'entier est signee ...

Merci pour votre aide.
Commenter la réponse de djtrefle
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
57
0
Merci
?????

pas compris la question....

la CONSTANTE adUnsignedInt renvoie toujours 19 ? ben ouais, c'est une constante ^^

par contre, a voir la valeur renvoyée par
RS.Fields("DATA_TYPE").Value

(Recordset obtenu, je le rappelle en demandant un schema de la table)
Commenter la réponse de Renfield