在codeproject搞了个操作数据库的ADO类,想要枚举数据库的表,但就是搞不对。哪位大侠给个代码,或者给我指点一下迷津。
我用了下面的代码:CADORecordset *pAdoRs = new CADORecordset(pAdoDb);
pAdoRs->OpenSchema(adSchemaTables);
CADOFieldInfo *pInfo;
CString tabletype,tablename;
while(!pAdoRs->IsEOF())
{
pAdoRs->GetFieldInfo("TABLE",pInfo);
tablename=pInfo->m_strName;
AfxMessageBox(tablename);
}问题就是这个GetFieldInfo("TABLE",pInfo);函数的第一个参数我实在不知道要传什么值进去才能得到表名。
我用了下面的代码:CADORecordset *pAdoRs = new CADORecordset(pAdoDb);
pAdoRs->OpenSchema(adSchemaTables);
CADOFieldInfo *pInfo;
CString tabletype,tablename;
while(!pAdoRs->IsEOF())
{
pAdoRs->GetFieldInfo("TABLE",pInfo);
tablename=pInfo->m_strName;
AfxMessageBox(tablename);
}问题就是这个GetFieldInfo("TABLE",pInfo);函数的第一个参数我实在不知道要传什么值进去才能得到表名。
解决方案 »
- 求vnc代码分析的资料或者网站
- 请问 API命名规范问题(在线等待,立结)
- 请问如何调用一幅加到resource中的bmp位图文件?
- 那里可以参考到windows的原代码,谢谢
- 如何将字符串"我爱中华"分为单个字?请给各例子
- 请教:我从网上下了一个多文档的程序框架,但是用WTL库开发的,而我做的几个动态链接库是用MFC的,两者能否合到一起?有没有介绍这方面的
- 再一次问,怎么控制托盘区的tip的显示和隐藏?
- 在VC++中下的SQL查2个表和查1个表有区别吗?
- ADO效率问题
- 大家来讨论一下。VC的DEBUG版本和RELEASE版本都有什么区别??
- 类内成员函数指针,想了很9都没解决!
- 书上说关于核心对象泄露的地方 有句话看不懂 请高手来指教下
pRs->GetFieldValue("ID", lVal);
pRs->MoveNext();
pAdoRs->OpenSchema(adSchemaTables);
CString tabletype,tablename;
while(!pAdoRs->IsEOF())
{
pAdoRs->GetFieldValue("TABLE_NAME",tablename);
pAdoRs->MoveNext();
AfxMessageBox(tablename);
}
我已经解决了,但是这样会得到好多系统表,如何过滤掉只得到我的用户表???给个代码分就相送了!
20
返回目录中定义的给定用户可访问的表(包括视图)。
(TABLES Rowset)
TABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
TABLE_TYPE
char pType[40];
CString sTableName; //非系统表名
strcpy(pType, (char *)_bstr_t(pRstSchema->GetCollect("TABLE_TYPE")));
if (!strcmp(pType, "TABLE")) //如果是系统表的话会返回"SYSTEM TABLE"
{
...
}