在MFC下,使用ADO连接sqlserver数据库,打开数据库失败,请大侠们帮帮看看,谢谢

时间:2022-03-01 04:51:02
try
{//打开数据库
m_pRecordset->Open("SELECT * FROM usertalbe",                // 查询 表中所有字段
theApp.m_pConnection.GetInterfacePtr(),  // 获取库接库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error *e)//捕获打开数据库可能发生的异常情况并实时显示提示
{
AfxMessageBox(e->ErrorMessage());
}
我是
在连接数据库的时候是成功的,usertable表是在sqlserver2000下手动建立的,通过调试,发现程序运行到代开表usertable时出现了错误,HotelManage.exe 中的 0x7c812afb 处未处理的异常: Microsoft C++ 异常: 内存位置 0x0012e714 处的 _com_error。
我是在vs2008下通过ADO连接数据库的,请大家帮忙看看,为什么数据库是连接成功的,而不能打开表格呀,谢谢!

9 个解决方案

#1


catch(_com_error e)//捕获打开数据库可能发生的异常情况并实时显示提示
{
AfxMessageBox(e.Description())
}

把*e改成e试试可以吗

#2


连接数据库之前是否有   m_pConnection.CreateInstance(__uuidof(Connection));

#3


调试运行程序,当打开表崩溃的时候,中断运行,打开堆栈窗口,查找错误

#4


catch(_com_error e)//捕获打开数据库可能发生的异常情况并实时显示提示
{
AfxMessageBox(e.Description())
}

修改后,出现"IDispatch error #3127"错误(弹出对话框).从网上查3127代表的是“没有找到目标表”,

但是usertalbe这个表是我手动在sqlserver下建立的,而且数据库也连接成功了,怎么找不到usertalbe表呐?

#5


连接数据库之前是有 m_pConnection.CreateInstance(__uuidof(Connection));
数据库连接是成功的,在open表usertalbe时出现问题

#6


访问数据权限加了么?

#7


引用 4 楼 kele814 的回复:
catch(_com_error e)//捕获打开数据库可能发生的异常情况并实时显示提示
{
AfxMessageBox(e.Description())
}

修改后,出现"IDispatch error #3127"错误(弹出对话框).从网上查3127代表的是“没有找到目标表”,

但是usertalbe这个表是我手动在sqlserver下建立的,而且数据库也连接成功了,怎么找……


这个错误好像不是usertable不存在

#8


改一下IDispatch的获取方式,具体记不清了,参考一下别人的代码

#9


同问同问啊,我的程序也有现在这个问题,表明明是存在的,就说是找不到。。。现在还没有解决,请高手指点一下啊!!!

#1


catch(_com_error e)//捕获打开数据库可能发生的异常情况并实时显示提示
{
AfxMessageBox(e.Description())
}

把*e改成e试试可以吗

#2


连接数据库之前是否有   m_pConnection.CreateInstance(__uuidof(Connection));

#3


调试运行程序,当打开表崩溃的时候,中断运行,打开堆栈窗口,查找错误

#4


catch(_com_error e)//捕获打开数据库可能发生的异常情况并实时显示提示
{
AfxMessageBox(e.Description())
}

修改后,出现"IDispatch error #3127"错误(弹出对话框).从网上查3127代表的是“没有找到目标表”,

但是usertalbe这个表是我手动在sqlserver下建立的,而且数据库也连接成功了,怎么找不到usertalbe表呐?

#5


连接数据库之前是有 m_pConnection.CreateInstance(__uuidof(Connection));
数据库连接是成功的,在open表usertalbe时出现问题

#6


访问数据权限加了么?

#7


引用 4 楼 kele814 的回复:
catch(_com_error e)//捕获打开数据库可能发生的异常情况并实时显示提示
{
AfxMessageBox(e.Description())
}

修改后,出现"IDispatch error #3127"错误(弹出对话框).从网上查3127代表的是“没有找到目标表”,

但是usertalbe这个表是我手动在sqlserver下建立的,而且数据库也连接成功了,怎么找……


这个错误好像不是usertable不存在

#8


改一下IDispatch的获取方式,具体记不清了,参考一下别人的代码

#9


同问同问啊,我的程序也有现在这个问题,表明明是存在的,就说是找不到。。。现在还没有解决,请高手指点一下啊!!!