我再MFC中使用ADO连接ACCESS数据库并进行操作总是出错,请问怎么回事?

keary093 2011-10-12 04:28:46
我的函数如下:


// 用于将Item结构变量添加到db.mdb数据库中
bool DBItem(Item* it)
{
_ConnectionPtr pConn;
pConn.CreateInstance(__uuidof(Connection));
try
{
// 打开本地Access库db.mdb
pConn->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb",
"","",adModeUnknown);
pConn->ConnectionTimeout=10;
}
catch(_com_error e)
{
AfxMessageBox(_T("数据库连接失败,确认数据库db.mdb是否在当前路径下!"));
return FALSE;
}
_RecordsetPtr pRec;
pRec.CreateInstance(__uuidof(Recordset));
try
{
pRec->Open("SELECT * FROM WatchItem",// 查询DemoTable表中所有字段
pConn.GetInterfacePtr(), // 获取库接库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
pRec->AddNew();
pRec->PutCollect("Time",_variant_t(it->m_time));
pRec->PutCollect("Type",_variant_t(it->m_type));
pRec->PutCollect("Path",_variant_t(it->m_path));
pRec->Update();
pRec->Close();
pConn->Close();
return TRUE;
}


调试的时候总弹出对话框说“数据库连接失败,确认数据库db.mdb是否在当前路径下!”,请问怎么回事?
我才学用VC弄数据库编程,请各位回答一下,谢谢!~
...全文
146 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
keary093 2011-10-12
  • 打赏
  • 举报
回复
解决了,的确是该放在代码文件的同级目录下……
tj35209cgy 2011-10-12
  • 打赏
  • 举报
回复
在使用是你可以先获得程序所在路径,然后就可以用绝对路径了。
huaidan2012126 2011-10-12
  • 打赏
  • 举报
回复
为什么放在debug目录下?是不是应该放在代码文件的同级目录下
keary093 2011-10-12
  • 打赏
  • 举报
回复
刚试了,用绝对路径就没问题,不过真正使用的时候不可能用绝对路径啊~
keary093 2011-10-12
  • 打赏
  • 举报
回复
我是把db.mdb放在debug目录下的~

这是个全局函数~
tj35209cgy 2011-10-12
  • 打赏
  • 举报
回复
db.mdb文件需要完整路径,否则你就把它放到debug目录下。
huaidan2012126 2011-10-12
  • 打赏
  • 举报
回复
还有你的数据库文件是不是在当前目录下
huaidan2012126 2011-10-12
  • 打赏
  • 举报
回复
你的代码放在哪个函数下面了?
如果读者需要使用光盘的源代码,请将相关目录及其包含的内容复制到您的硬盘上,并修改对应的硬盘目录属性——取消目录及其所包含子目录和文件的“只读”属性。否则,打开VC项目时由于无法进行文件的“写”操作,会导致提示出错信息。 下面是对光盘主要实例的简要说明: 实例2-1:演示C++程序的运行步骤。源代码在光盘“\02\firstcpp”目录下。 实例2-2:Visual C++语言基本元素介绍。源代码在光盘“\02\secondcpp”目录下。 实例2-3:cout流控制符setw的使用。源代码在光盘“\02\thirdcpp”目录下。 实例2-4:增加域内填充字符。源代码在光盘“\02\fourthcpp”目录下。 实例2-5:同一数据用不同进制输出结果。源代码在光盘“\02\fifthcpp”目录下。 实例2-6:用浮点数的形式输出数据。源代码在光盘“\02\sixthcpp”目录下。 实例2-7:数据的输入及输出。源代码在光盘“\02\seventhcpp”目录下。 实例2-8:计算学生平均成绩。源代码在光盘“\02\eighthcpp”目录下。 实例2-9:函数的调用。源代码在光盘“\02\ninthcpp”目录下。 实例2-10:用指针传递参数。源代码在光盘“\02\tenthcpp”目录下。 实例2-11:全局变量和局部变量。源代码在光盘“\02\eleventhcpp”目录下。 实例2-12:使用指针注意内存的分配。源代码在光盘“\02\twelfthcpp”目录下。 实例2-13:引用实例。源代码在光盘“\02\thirteencpp”目录下。 实例2-14:虚函数的使用实例。源代码在光盘“\02\fourteencpp”目录下。 实例3-1:利用向导生成的应用程序框架实例。源代码在光盘“\03\test”目录下。 实例4-1:文档的存取。源代码在光盘“\04\CDocument”目录下。 实例4-2:简单的文本编辑器。源代码在光盘“\04\CEditView”目录下。 实例5-1:菜单实例。源代码在光盘“\05\test1”目录下。 实例5-2:图片浏览器。源代码在光盘“\05\picture”目录下。 实例5-3:工具栏资源编辑器。源代码在光盘“\05\prop”目录下。 实例5-4:工具条的编程技术。源代码在光盘“\05\record”目录下。 实例5-5:给状态栏添加时间窗格。源代码在光盘“\05\pane”目录下。 实例6-1:创建模态对话框。源代码在光盘“\06\dialog_1”目录下。 实例6-2:创建非模态对话框。源代码在光盘“\06\dialog_2”目录下。 实例6-3:通用对话框展示。源代码在光盘“\06\dialog_3”目录下。 实例6-4:创建一般属性页对话框。源代码在光盘“\06\dialog_4”目录下。 实例6-5:创建向导对话框。源代码在光盘“\06\dialog_5”目录下。 实例7-1:标准控件实例。源代码在光盘“\07\CtrlTest”目录下。 实例8-1:区域探测实例。源代码在光盘“\08\finding”目录下。 实例8-2:键盘字符的输入与显示。源代码在光盘“\08\keyboard”目录下。 实例9-1:字体展示。源代码在光盘“\09\text”目录下。 实例9-2:文字动画。源代码在光盘“\09\characters”目录下。 实例9-3:画刷使用实例。源代码在光盘“\09\Color”目录下。 实例10-1:打印实例。源代码在光盘“\10\print”目录下。 实例11-1:存取SDI程序文档实例。源代码在光盘“\11\SerialSDI”目录下。 实例11-2:文件操作实例。源代码在光盘“\11\FileManipulate”目录下。 实例12-1:使用用户界面线程实例。源代码在光盘“\12\InterfaceThread”目录下。 实例12-2:使用工作者线程实例。源代码在光盘“\12\ControlThread”目录下。 实例12-3:多线程实例。源代码在光盘“\12\WQDemo”目录下。 实例12-4:线程间的通信。源代码在光盘“\12\ThreadCommu”目录下。 实例13-1:动态链接库(Dll)实例。源代码在光盘“\13\dlltest ”目录下。 实例13-2:鼠标钩子应用实例。源代码在光盘“\13\MouseHook”目录下。 实例13-3:键盘钩子应用实例。源代码在光盘“\13\KeyboardHook”目录下。 实例14-1:WinSock网络程序:聊天室。源代码在光盘“\14\WinSocketChat”目录下。 实例14-2:利用MSComm控件进行串口数据传输。源代码在光盘“\14\MSComm”目录下。 实例14-3:简单的WinInet应用程序。源代码在光盘“\14\SimpleNet”目录下。 实例15-1:创建Access数据库。源代码在光盘的“\15\Info”。 实例15-2:MFC的ODBC数据库实例。源代码在光盘“\15\Enroll”目录下。 实例15-3:利用ADO查询并操作数据库实例。源代码在光盘“\15\AdoTest”目录下。 FTP应用实例:FTP客户端程序,源代码在光盘目录“\16”下。 人事管理系统:源代码在光盘目录“\17”下。
Visual C++,很多例子工程,由简单到复杂. 如果读者需要使用光盘的源代码,请将相关目录及其包含的内容复制到您的硬盘上,并修改对应的硬盘目录属性——取消目录及其所包含子目录和文件的“只读”属性。否则,打开VC项目时由于无法进行文件的“写”操作,会导致提示出错信息。 下面是对光盘主要实例的简要说明: 实例2-1:演示C++程序的运行步骤。源代码在光盘“\02\firstcpp”目录下。 实例2-2:Visual C++语言基本元素介绍。源代码在光盘“\02\secondcpp”目录下。 实例2-3:cout流控制符setw的使用。源代码在光盘“\02\thirdcpp”目录下。 实例2-4:增加域内填充字符。源代码在光盘“\02\fourthcpp”目录下。 实例2-5:同一数据用不同进制输出结果。源代码在光盘“\02\fifthcpp”目录下。 实例2-6:用浮点数的形式输出数据。源代码在光盘“\02\sixthcpp”目录下。 实例2-7:数据的输入及输出。源代码在光盘“\02\seventhcpp”目录下。 实例2-8:计算学生平均成绩。源代码在光盘“\02\eighthcpp”目录下。 实例2-9:函数的调用。源代码在光盘“\02\ninthcpp”目录下。 实例2-10:用指针传递参数。源代码在光盘“\02\tenthcpp”目录下。 实例2-11:全局变量和局部变量。源代码在光盘“\02\eleventhcpp”目录下。 实例2-12:使用指针注意内存的分配。源代码在光盘“\02\twelfthcpp”目录下。 实例2-13:引用实例。源代码在光盘“\02\thirteencpp”目录下。 实例2-14:虚函数的使用实例。源代码在光盘“\02\fourteencpp”目录下。 实例3-1:利用向导生成的应用程序框架实例。源代码在光盘“\03\test”目录下。 实例4-1:文档的存取。源代码在光盘“\04\CDocument”目录下。 实例4-2:简单的文本编辑器。源代码在光盘“\04\CEditView”目录下。 实例5-1:菜单实例。源代码在光盘“\05\test1”目录下。 实例5-2:图片浏览器。源代码在光盘“\05\picture”目录下。 实例5-3:工具栏资源编辑器。源代码在光盘“\05\prop”目录下。 实例5-4:工具条的编程技术。源代码在光盘“\05\record”目录下。 实例5-5:给状态栏添加时间窗格。源代码在光盘“\05\pane”目录下。 实例6-1:创建模态对话框。源代码在光盘“\06\dialog_1”目录下。 实例6-2:创建非模态对话框。源代码在光盘“\06\dialog_2”目录下。 实例6-3:通用对话框展示。源代码在光盘“\06\dialog_3”目录下。 实例6-4:创建一般属性页对话框。源代码在光盘“\06\dialog_4”目录下。 实例6-5:创建向导对话框。源代码在光盘“\06\dialog_5”目录下。 实例7-1:标准控件实例。源代码在光盘“\07\CtrlTest”目录下。 实例8-1:区域探测实例。源代码在光盘“\08\finding”目录下。 实例8-2:键盘字符的输入与显示。源代码在光盘“\08\keyboard”目录下。 实例9-1:字体展示。源代码在光盘“\09\text”目录下。 实例9-2:文字动画。源代码在光盘“\09\characters”目录下。 实例9-3:画刷使用实例。源代码在光盘“\09\Color”目录下。 实例10-1:打印实例。源代码在光盘“\10\print”目录下。 实例11-1:存取SDI程序文档实例。源代码在光盘“\11\SerialSDI”目录下。 实例11-2:文件操作实例。源代码在光盘“\11\FileManipulate”目录下。 实例12-1:使用用户界面线程实例。源代码在光盘“\12\InterfaceThread”目录下。 实例12-2:使用工作者线程实例。源代码在光盘“\12\ControlThread”目录下。 实例12-3:多线程实例。源代码在光盘“\12\WQDemo”目录下。 实例12-4:线程间的通信。源代码在光盘“\12\ThreadCommu”目录下。 实例13-1:动态链接库(Dll)实例。源代码在光盘“\13\dlltest ”目录下。 实例13-2:鼠标钩子应用实例。源代码在光盘“\13\MouseHook”目录下。 实例13-3:键盘钩子应用实例。源代码在光盘“\13\KeyboardHook”目录下。 实例14-1:WinSock网络程序:聊天室。源代码在光盘“\14\WinSocketChat”目录下。 实例14-2:利用MSComm控件进行串口数据传输。源代码在光盘“\14\MSComm”目录下。 实例14-3:简单的WinInet应用程序。源代码在光盘“\14\SimpleNet”目录下。 实例15-1:创建Access数据库。源代码在光盘的“\15\Info”。 实例15-2:MFC的ODBC数据库实例。源代码在光盘“\15\Enroll”目录下。 实例15-3:利用ADO查询并操作数据库实例。源代码在光盘“\15\AdoTest”目录下。 FTP应用实例:FTP客户端程序,源代码在光盘目录“\16”下。 人事管理系统:源代码在光盘目录“\17”下。

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧