请问如何得到SQL SERVER数据库中所有表的表名 请问如何得到SQL SERVER数据库中所有表的表名,如数据库名为"ABC" 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 odbc遍历求数据库中表名: bool CDBInfoDlg::ListTables(bool bViews, bool bSystemTables) { CDatabase database; CString type = "'TABLE'"; int ret= -1; HSTMT hStmt; UCHAR szName[256]; SDWORD cbName; CString names; if( bViews ) type += ", 'VIEW'";//视图 if( bSystemTables ) type += ", 'SYSTEM TABLE'";//系统表 try{ if( !database.Open(m_strDSN) ) return false; } catch(...) { AfxMessageBox("Unable To Obtain Table Information"); return false; } SQLAllocStmt(database.m_hdbc,&hStmt); ret = SQLTables(hStmt, NULL,SQL_NTS, NULL,SQL_NTS, NULL,SQL_NTS, (unsigned char *)type.GetBuffer(0),SQL_NTS); if(ret == SQL_ERROR) { SQLFreeStmt(hStmt,SQL_CLOSE); database.Close(); if(ret == SQL_INVALID_HANDLE ) { AfxMessageBox("Invalid handle"); return false; } AfxMessageBox("Database Could Not be Open"); return false; } m_cmbTables.ResetContent(); while(1){ ret = SQLFetch(hStmt); if(ret == SQL_NO_DATA_FOUND) break; ret = SQLGetData(hStmt,3,SQL_C_CHAR,szName,TABLE_NAME_LENGTH, &cbName); names.Format("%s",szName); m_cmbTables.AddString(names); } m_cmbTables.SetCurSel(0); SQLFreeStmt(hStmt,SQL_CLOSE); database.Close(); ShowTable(); return true; } windows采集信号的问题 有关NetBIOS端口…………。路过不妨指点一二。 借VC版人气,寻珠海澳门同游者 请问wav和mp3只见怎么互相转化呢? 紧急求救 请问如何使用http协议 请问如何设定Edit中一行显示字符的个数呢?万分紧急 之前分太低,重贴!“解释一段代码,及其相关问题” 高分请教:关于不规则图形的显示问题 谁有ISO8583 C语言的SDK?(给50分) 怎么样得到网页中的flash文件名 大虾们,看看,给个思路,语法分析器工具 高手请分析,谢谢
bool CDBInfoDlg::ListTables(bool bViews, bool bSystemTables)
{
CDatabase database;
CString type = "'TABLE'";
int ret= -1;
HSTMT hStmt;
UCHAR szName[256];
SDWORD cbName;
CString names;
if( bViews )
type += ", 'VIEW'";//视图
if( bSystemTables )
type += ", 'SYSTEM TABLE'";//系统表
try{
if( !database.Open(m_strDSN) )
return false;
}
catch(...)
{
AfxMessageBox("Unable To Obtain Table Information");
return false;
}
SQLAllocStmt(database.m_hdbc,&hStmt);
ret = SQLTables(hStmt, NULL,SQL_NTS,
NULL,SQL_NTS,
NULL,SQL_NTS,
(unsigned char *)type.GetBuffer(0),SQL_NTS);
if(ret == SQL_ERROR)
{
SQLFreeStmt(hStmt,SQL_CLOSE);
database.Close();
if(ret == SQL_INVALID_HANDLE )
{
AfxMessageBox("Invalid handle");
return false;
}
AfxMessageBox("Database Could Not be Open");
return false;
}
m_cmbTables.ResetContent();
while(1){
ret = SQLFetch(hStmt);
if(ret == SQL_NO_DATA_FOUND)
break;
ret = SQLGetData(hStmt,3,SQL_C_CHAR,szName,TABLE_NAME_LENGTH, &cbName);
names.Format("%s",szName);
m_cmbTables.AddString(names);
} m_cmbTables.SetCurSel(0);
SQLFreeStmt(hStmt,SQL_CLOSE);
database.Close();
ShowTable();
return true;
}