我想连接数据库后把所有表名都列出来方便浏览!
不知道怎么做,有哪位大哥知道的啊!
不知道怎么做,有哪位大哥知道的啊!
解决方案 »
- "cannot open Debug/**.exe for writing"原因?
- 忽略所有的default lib?? vc link中有上面的选项.
- 关于消息传递的问题
- 请教一个AddRef疑惑
- 如何实现进度条的控制
- 如何才能将新建文档上的“标题栏”变窄一些(不需要自画),只是将厚度变窄
- 高手过招--怎样在一个窗体中同时显示不同时打开的位图并保存到一个文件中去
- 100分求一个简单onPaint函数(急阿。
- 求救:关于winsock api 的一个问题
- 作一个类似ACDSee的程序的要点是什么
- VC++6.0问题(非语言类)- 编辑区的垂直滚动条不见了?怎么办……
- 如何获得数据库中的表名和个数
虽然我使用Access实验的,SQL的ADO也应该一样~~~
http://blog.csdn.net/LBPeking/archive/2008/03/29/2229220.aspx
{
_bstr_t table_name = m_pRecordset->Fields->GetItem("TABLE_NAME")->Value;
{
ADODB::_RecordsetPtr pRstSchema = NULL;
pRstSchema = m_connection->OpenSchema(ADODB::adSchemaTables);
_bstr_t bsTableName(bsTable);
_bstr_t table_name("");
_bstr_t table_type("");
char *pTemp1=NULL,*pTemp2=NULL;
pTemp1 = _com_util::ConvertBSTRToString(bsTableName);
pTemp1 = strlwr(pTemp1);
VARIANT_BOOL b=FALSE;
while(!(pRstSchema->adoEOF))
{
table_name = pRstSchema->Fields->
GetItem("TABLE_NAME")->Value;
pTemp2 = _com_util::ConvertBSTRToString(table_name);
pTemp2 = strlwr(pTemp2);
table_type = pRstSchema->Fields->
GetItem("TABLE_TYPE")->Value;
if (lType == 1) //view type
{
if (table_type == _bstr_t("VIEW"))
{
if (strcmp(pTemp1,pTemp2)==0)
b = TRUE;
}
}
if (lType == 0) //table type
{
if (table_type == _bstr_t("TABLE"))
{
if (strcmp(pTemp1,pTemp2)==0)
b = TRUE;
}
}
pRstSchema->MoveNext();
}
// Clean up objects before exit.
if (pRstSchema)
if (pRstSchema->State == ADODB::adStateOpen)
pRstSchema->Close();
*pVal = b;
return S_OK;
}
FROM sysobjects
WHERE (xtype = 'U')
呵呵!找到了!
SQL