欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

ADO实现Access数据库表的遍历和字段的遍历

程序员文章站 2024-02-05 10:57:34
...

欢迎进入C/C++编程社区论坛,与200万技术人员互动交流 >>进入 网络上鲜有VC版的相关代码,今日学习了VC利用ADO操纵数据库部分。查了一下MSDN写了以下代: 遍历用户表的代码: CoInitialize(NULL); _ConnectionPtr pconn(__uuidof(Connection)); _RecordsetPtr

欢迎进入C/C++编程社区论坛,与200万技术人员互动交流 >>进入

网络上鲜有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();

ADO实现Access数据库表的遍历和字段的遍历