ADO recordset

mortiis Messages postés 120 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 9 mars 2008 - 13 avril 2004 à 08:10
mortiis Messages postés 120 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 9 mars 2008 - 14 avril 2004 à 02:15
Bonjour à tous

Je connait un peut ado, asser pour l'utiliser, mais je me pose une question.

Quand on fait un
select * from table;
existe-t-il un moyen de connaitre tous les champs de la table, dans le cas où on ne les connait pas.

Merci pour le temps.

6 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
13 avril 2004 à 09:43
_ConnectionPtr pConnDB;
_RecordsetPtr pSchemaRs;
_bstr_t bst;
....
....
pSchemaRs = pConnDB->OpenSchema(adSchemaTables);
while(!(pSchemaRs->EndOfFile)) {
bst = pSchemaRs->Fields->GetItem("TABLE_TYPE")->Value;
if(!strcmp("TABLE", bst)) {
bst = pSchemaRs->Fields->GetItem("TABLE_NAME")->Value;
// bst EST NOM DE TABLE

}

pSchemaRs->MoveNext();
}

ciao...
BruNews, Admin CS, MVP Visual C++
0
mortiis Messages postés 120 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 9 mars 2008
13 avril 2004 à 16:48
Bonjour à tous

Merci beaucoup je n'en demandais pas tant, c'est magnifique.
Je m'empresse d'aller tester.

Merci.
0
mortiis Messages postés 120 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 9 mars 2008
13 avril 2004 à 17:04
Bonjour à tous

Je vient de tester et effectivement cela fonctionne numéro 1.

Mais peut-ëtre que je m'étais mal exprimé, ce que je cherche c'est pas comment obtenir le nom des tables, mais plutot le nom des champs d'une table spécifique.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
13 avril 2004 à 17:12
ah oui, je viens de correctement lire la question.
Attends chouia, je fais et je te le mets.

ciao...
BruNews, Admin CS, MVP Visual C++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
13 avril 2004 à 17:48
Fais gaffe j'ai tape dans notepad, erreurs possibles.

FieldPtr pFld;
long i, nFlds, lType, bRet = 1;
_bstr_t bst;
char buff[60];
...
...
try {
pSchemaRs = pConnDB->OpenSchema(adSchemaTables);
while(!(pSchemaRs->EndOfFile)) {
bst = pSchemaRs->Fields->GetItem("TABLE_TYPE")->Value;
if(!strcmp("TABLE", bst)) { // EVITE TABLES SYSTEME
// NOM TABLE DANS bst
buff[0] = '['; strcpy(buff+1, bst); strcat(buff, "]");
pRs->Open(buff, _variant_t((IDispatch *)pConnDB,true),
adOpenForwardOnly, adLockReadOnly, adCmdTable);
nFlds = pRs->Fields->Count;
for(i = 0; i < nFlds; i++) {
pFld = pRs->Fields->GetItem((long) i);
strcpy(buff, pFld->GetName());
// NOMS DES CHAMPS DANS buff
}
pRs->Close();
}
pSchemaRs->MoveNext();
}
}
catch(_com_error &e) {
... A SUIVRE

ciao...
BruNews, Admin CS, MVP Visual C++
0
mortiis Messages postés 120 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 9 mars 2008
14 avril 2004 à 02:15
Bonjour à tous

Merci beaucoup pour l'aide rapide.
Cela fonctionne très bien.

C'est très gentil à toi de passer tant de temps pour ceux comme moi qui pose des questions. c'est très apprécié.
surtout pour ceux, qui comme moi commencent.
0
Rejoignez-nous