您的位置:首页 > 数据库

ADO实现Access数据库表的遍历和字段的遍历(VC版)

2007-08-15 19:38 253 查看
网络上鲜有VC版的相关代码,今日学习了VC利用ADO操纵数据库部分。查了一下MSDN写了以下代:

遍历用户表的代码:

CoInitialize(NULL);
_ConnectionPtr pconn(__uuidof(Connection));
_RecordsetPtr prs(__uuidof(Recordset));
pconn->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D://VC//Lesson20//db.mdb;Persist Security Info=False";
pconn->Open("","","",adConnectUnspecified);
prs=pconn->OpenSchema(adSchemaTables);
while (!prs->adoEoF)
{
if (!strcmp((_bstr_t)prs->Fields->GetItem("TABLE_TYPE")->Value,"TABLE"))
{
m_tablelist.AddString((_bstr_t)prs->Fields->GetItem("TABLE_NAME")->Value);
prs->MoveNext();
}
else
prs->MoveNext();
}
prs->Close();
pconn->Close();
prs.Release();
pconn.Release();
CoUninitialize();

遍历字段的代码:

CString str;
m_tablelist.GetText(m_tablelist.GetCurSel(),str);//通过表列表框得到表的名称
if (m_columnlist.GetCount()>0)
{
m_columnlist.ResetContent();
}
CoInitialize(NULL);
_ConnectionPtr pconn(__uuidof(Connection));
_RecordsetPtr prs(__uuidof(Recordset));
pconn->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D://VC//Lesson20//db.mdb;Persist Security Info=False";
pconn->Open("","","",adConnectUnspecified);
prs=pconn->OpenSchema(adSchemaColumns);
while (!prs->adoEoF)
{
if (!strcmp((_bstr_t)prs->Fields->GetItem("TABLE_NAME")->Value,(_bstr_t)(LPCTSTR)str))
{
int index=m_columnlist.GetCount();
// m_columnlist.AddString((_bstr_t)prs->Fields->GetItem("COLUMN_NAME")->Value);
m_columnlist.InsertString(index,(_bstr_t)prs->Fields->GetItem("COLUMN_NAME")->Value);
prs->MoveNext();
}
else
prs->MoveNext();
}
prs->Close();
pconn->Close();
prs.Release();
pconn.Release();
CoUninitialize();

呵呵!记忆在这里了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: