cs_LordBob
Messages postés2865Date d'inscriptionsamedi 2 novembre 2002StatutMembreDernière intervention11 mai 20099 5 avril 2005 à 22:08
euh excuse moi... c'est juste a propos de la fonction que tu as poster, tu as oublier de mettre la fonction:
OdbcEnumFields();
si tu pouvais la rejouter ca serait super !
merci par avance et excuse pour le derangement !
cs_LordBob
Messages postés2865Date d'inscriptionsamedi 2 novembre 2002StatutMembreDernière intervention11 mai 20099 1 avril 2005 à 09:56
ok, je vais regarder cela !
merci a toi BruNews !
BruNews
Messages postés21041Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 201919 31 mars 2005 à 23:52
Voila un début, pas trop le temps d'aller plus loin en ce moment:
#define STR_LEN 132
long lerror = 0;
SQLINTEGER cbTableName, cbTypeName;
SQLCHAR szTableName[STR_LEN];
SQLCHAR szTypeName[STR_LEN];
6 avril 2005 à 08:14
5 avril 2005 à 23:19
{ // return != 0 SI ERREUR
SQLHANDLE hstmt;
char *c;
lerror = 1;
retcd = SQLAllocHandle(SQL_HANDLE_STMT, hconn, &hstmt);
if(retcd & 0xFFFE) return;
retcd = SQLColumns(hstmt, 0, 0, 0, 0, szTableName, SQL_NTS, 0, 0);
if(retcd & 0xFFFE) goto fieldsFree;
SQLBindCol(hstmt, 4, SQL_C_CHAR, szColumnName, STR_LEN, &cbColumnName);
SQLBindCol(hstmt, 5, SQL_C_SSHORT, &DataType, 0, &cbDataType);
SQLBindCol(hstmt, 6, SQL_C_CHAR, szTypeName, STR_LEN, &cbTypeName);
SQLBindCol(hstmt, 7, SQL_C_SLONG, &ColumnSize, 0, &cbColumnSize);
SQLBindCol(hstmt, 8, SQL_C_SLONG, &BufferLength, 0, &cbBufferLength);
SQLBindCol(hstmt, 9, SQL_C_SSHORT, &DecimalDigits, 0, &cbDecimalDigits);
SQLBindCol(hstmt, 10, SQL_C_SSHORT, &NumPrecRadix, 0, &cbNumPrecRadix);
SQLBindCol(hstmt, 11, SQL_C_SSHORT, &Nullable, 0, &cbNullable);
SQLBindCol(hstmt, 12, SQL_C_CHAR, szRemarks, REM_LEN, &cbRemarks);
SQLBindCol(hstmt, 13, SQL_C_CHAR, szColumnDefault, STR_LEN, &cbColumnDefault);
SQLBindCol(hstmt, 14, SQL_C_SSHORT, &SQLDataType, 0, &cbSQLDataType);
SQLBindCol(hstmt, 15, SQL_C_SSHORT, &DatetimeSubtypeCode, 0, &cbDatetimeSubtypeCode);
SQLBindCol(hstmt, 16, SQL_C_SLONG, &CharOctetLength, 0, &cbCharOctetLength);
SQLBindCol(hstmt, 17, SQL_C_SLONG, &OrdinalPosition, 0, &cbOrdinalPosition);
SQLBindCol(hstmt, 18, SQL_C_CHAR, szIsNullable, STR_LEN, &cbIsNullable);
nextField:
c = szbuff;
retcd = SQLFetch(hstmt);
if(retcd & 0xFFFE) goto fieldEnd;
*c 32; *(c+1) 'F'; *(c+2) = 'l'; *(c+2) = 'd'; *(c+3) = '(';
c = bnultoa(OrdinalPosition, c+4);
*c ')'; *(c+1) 32;
c = bnstrcpy(c+2, (char*)szColumnName);
*c ','; *(c+1) 32;
c = bnstrcpy(c+2, (char*)szTypeName);
if(DataType == 12) {
*c 32; c bnultoa(ColumnSize, c+1);
}
MessageBox(0, szbuff, szappname, 0x40);
goto nextField;
fieldEnd: lerror = 0;
fieldsFree: SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
}
5 avril 2005 à 22:08
OdbcEnumFields();
si tu pouvais la rejouter ca serait super !
merci par avance et excuse pour le derangement !
1 avril 2005 à 09:56
merci a toi BruNews !
31 mars 2005 à 23:52
#define STR_LEN 132
long lerror = 0;
SQLINTEGER cbTableName, cbTypeName;
SQLCHAR szTableName[STR_LEN];
SQLCHAR szTypeName[STR_LEN];
void OdbcEnumTables()
{ // return != 0 SI ERREUR
SQLHANDLE hstmt;
lerror = 1; // presume erreur
retcd = SQLAllocHandle(SQL_HANDLE_STMT, hconn, &hstmt);
if(retcd & 0xFFFE) return;
retcd = SQLTables(hstmt, 0, 0, 0, 0, 0, SQL_NTS, 0, 0);
if(retcd & 0xFFFE) goto tablesFree;
SQLBindCol(hstmt, 3, SQL_C_CHAR, szTableName, STR_LEN,&cbTableName);
SQLBindCol(hstmt, 4, SQL_C_CHAR, szTypeName, STR_LEN, &cbTypeName);
nextTable:
retcd = SQLFetch(hstmt);
if(retcd & 0xFFFE) goto tablesEnd;
if(szTypeName[0] != 'T') goto nextTable;
if(szTypeName[1] != 'A') goto nextTable;
if(szTypeName[5] != 0) goto nextTable;
MessageBox(0, (char*)szTableName, "TABLE", MB_ICONINFORMATION);
OdbcEnumFields();
goto nextTable;
tablesEnd: lerror = 0;
tablesFree: SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
}
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.