ADO中的Recordset->open()问题

duchaoli 2008-10-01 10:54:38
try
{
m_pRecordset->Open((_bstr_t)("SELECT * FROM trainNUm "),
m_pconnection.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,adCmdText);
}
catch(...)
{
MessageBox("asdfasdafsf");
}

大家解释一下为什么这个open会引发错误呢,编译的时候没有错误,却在运行是出现了错误,这是什么原因?怎么做呢?
...全文
124 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
内存泄漏 2008-10-15
  • 打赏
  • 举报
回复
仔细检查一下表名,是不是trainNUm ? 没有搞错??
雪狼__ 2008-10-14
  • 打赏
  • 举报
回复
打开第二次的时候出错,可能是因为第一次没有关闭;
Recordset->Open();
Recordset->Close();
Recordset->Open();
这么个顺序
hangweijin 2008-10-14
  • 打赏
  • 举报
回复
对,这种情况都是SQL语句有问题,编译器不负责SQL部分的检查与正确性
Comgarden 2008-10-14
  • 打赏
  • 举报
回复
我也遇到类似的问题了
帮顶
a77248848 2008-10-14
  • 打赏
  • 举报
回复
这个我昨天晚上解决了,是你的数据库路径不对。路径你可以直接写文件名,然后生成,直接到DEBUG里面去运行。这个了解了,后面就好办了
luckyboy101 2008-10-08
  • 打赏
  • 举报
回复
错误代码是什么,或者把全部代码贴出来
  • 打赏
  • 举报
回复
表不是这个数据库的

  • 打赏
  • 举报
回复
我现在也遇到了这个问题.打开第一遍还行,第二遍出现"未知错误".
void CMyDlg::LianJie()
{
// 初始化 COM 对象
::CoInitialize(NULL);
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");//创建Connection对象
if(SUCCEEDED(hr))
{//连接数据库
hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=xfglxt.mdb","","",adModeUnknown);
}
}
catch(_com_error e)//捕捉异常
{
CString errormessage;
errormessage.Format("打开数据库失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);//显示错误信息
this->EndDialog(0);
}
}
内存泄漏 2008-10-01
  • 打赏
  • 举报
回复
用如下代码把你的代码包起来
try
{
//你的代码
}
catch(_com_error &e)
{
AfxMessageBox(e.Description());
}
看看能否捕获异常??

4,011

社区成员

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

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