// Get a list of the tables retcode = SQLTables( hstmt, NULL, 0, /* All catalogs */ NULL, 0, /* All schemas */ NULL, 0, /* All tables */ NULL, 0); /* All columns */
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) { SQLRETURN rc; long lRecordRead=0; SWORD FAR iNumResultCols=0; CObArray arrODBCColumns;
try
{
if(db.Open(NULL))
{
CString strDBName,strMsg1,strMsg2;
//strMsg1=db.GetConnect ();
strDBName=db.GetDatabaseName();
strMsg2.Format("Open database %s ok! ",strDBName);
//AfxMessageBox(strMsg2);
retcode=SQLAllocHandle(SQL_HANDLE_STMT,db.m_hdbc, &hstmt);
// Get a list of the tables
retcode = SQLTables( hstmt,
NULL, 0, /* All catalogs */
NULL, 0, /* All schemas */
NULL, 0, /* All tables */
NULL, 0); /* All columns */
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
{
SQLRETURN rc;
long lRecordRead=0;
SWORD FAR iNumResultCols=0;
CObArray arrODBCColumns;
#define NAME_LENs 100
SQLCHAR szName[NAME_LENs];
SQLINTEGER cbName;
SQLBindCol(hstmt, 3, SQL_C_CHAR, szName, NAME_LENs, &cbName);
while(true)
{
rc=SQLFetch(hstmt);
if(rc==SQL_ERROR)
continue;
if(rc==SQL_SUCCESS || rc == SQL_SUCCESS_WITH_INFO)
{
CString strTName=szName;
m_listbox.AddString (strTName);
}
else
{
break;
}
}
SQLFreeHandle(SQL_HANDLE_STMT,hstmt);
} }
}
catch(CDBException* p_dbe)
{
AfxMessageBox(p_dbe->m_strError,MB_ICONERROR);
p_dbe->Delete();
return FALSE;
}