myfavorit 2015-11-23 04:24 采纳率: 0%
浏览 2071

C++操作ACCESS数据库不知道哪里出问题了

AfxOleInit();
ConnectPtr.CreateInstance(__uuidof(Connection));
try
{
ConnectPtr->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=People.mdb", "", "", adModeUnknown);
}
catch (_com_error e)
{
AfxMessageBox(_T("链接数据库失败"));
return FALSE;
}
RecordsetPtr RecordPtr;
RecordPtr.CreateInstance(
_uuidof(Recordset));
try
{
RecordPtr->Open("SELECT * FROM TYPE",
ConnectPtr.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch (_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
_variant_t var;
CString strName;
RecordPtr->MoveFirst();
while (!RecordPtr->adoEOF)
{
var =RecordPtr->GetCollect("TYPE");
if (var.vt != VT_NULL)
{
strName = (LPCSTR)_bstr_t(var);
}
Type.AddString(strName);//type是组合框变量
RecordPtr->MoveNext();
}
RecordPtr->Close();
RecordPtr.Release();
RecordPtr = NULL;

  • 写回答

2条回答 默认 最新

  • threenewbee 2015-11-23 05:13
    关注

    People.mdb没有带上路径,确保这个文件的确存在,并且在程序当前目录下。最好用绝对路径。
    Microsoft.Jet.OLEDB.4.0驱动有没有?oledb4.0只能支持access 2000,97等比较老的数据库,access2007需要用ace12.0
    SELECT * FROM TYPE,数据库有没有叫type的表
    AfxMessageBox(e->ErrorMessage());报了什么错没有

    评论

报告相同问题?

悬赏问题

  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突