问题描述
- 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;
解决方案
People.mdb没有带上路径,确保这个文件的确存在,并且在程序当前目录下。最好用绝对路径。
Microsoft.Jet.OLEDB.4.0驱动有没有?oledb4.0只能支持access 2000,97等比较老的数据库,access2007需要用ace12.0
SELECT * FROM TYPE,数据库有没有叫type的表
AfxMessageBox(e->ErrorMessage());报了什么错没有
解决方案二:
People.mdb没有带上路径,确保这个文件的确存在,并且在程序当前目录下。最好用绝对路径。
解决方案三:
C++ SQL操作ACCESS数据库
时间: 2024-09-08 11:39:58