您的位置:程序门 -> .net技术 -> vc.net



ado连接数据库时,遇到的访问冲突!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


ado连接数据库时,遇到的访问冲突!
发表于:2007-12-24 14:34:08 楼主
求救,有关访问冲突的问题。!

//声明
iadorecordbinding*   m_piadorecordbinding;

//绑定指针
m_piadorecordbinding   =   null;

//获得指向记录绑定接口的指针
if(failed(m_ptrrs-> queryinterface(__uuidof(iadorecordbinding),(lpvoid*)&m_piadorecordbinding)))
_com_issue_error(e_nointerface);

//在这出错!!!
if(m_piadorecordbinding)
//释放指针
m_piadorecordbinding-> release();

弹出错误窗内容:

adotest.exe中的0x00415cdb处未处理的异常:0x00000005:读取位置0xcdcdcdcd时发生访问冲突。

(ps:程序编译通过,生成exe文件时,出现上述   中断)

应该是m_piadorecordbinding初始化的问题,但它是个不能实例化的抽象类指针吧,怎么处理呢?
发表于:2007-12-25 16:12:241楼 得分:0
代码贴全点吧,包括你的初始化部分:createinstance部分和open部分等
发表于:2007-12-25 16:30:232楼 得分:0
vc   编数据库是细活,慢慢找吧,问题是在邦定函数部分
发表于:2007-12-25 18:16:023楼 得分:0
if(null)   怎么判断?
发表于:2007-12-25 19:44:464楼 得分:0
关注
发表于:2007-12-27 17:24:595楼 得分:0
bool   csdi_adodbdoc::onnewdocument()
{
if   (!cdocument::onnewdocument())
return   false;

//   todo:   在此添加重新初始化代码
//   (sdi   文档将重用该文档)

//设置数据库连接和sql命令字符串
//m_strconnection   =   _t("provider=msdasql.1;data   source   =   testdb");
m_strconnection   =   _t("provider=msdasql.1;data   source=testdb");
m_strcmdtext   =   _t("select   *   from   form_a");

//初始化recordset和绑定指针
m_ptrrs   =   null;
m_piadorecordbinding   =   null;

//初始化com环境
::coinitialize(null);

try
{
//创建recordset对象
m_ptrrs.createinstance(   __uuidof(recordset));//__uuidof关键字。通过它可以进一步简化你在c++语言 中实现com组件的代价。  
//打开recordset对象
m_ptrrs-> open((lpctstr)m_strcmdtext,(lpctstr)m_strconnection,adopendynamic,  
  adlockbatchoptimistic,   //   fix   #5:   must   use   adlockbatchoptimistic
  adcmdtext);

//获得指向记录绑定接口的指针
if(failed(m_ptrrs-> queryinterface(__uuidof(iadorecordbinding),(lpvoid*)&m_piadorecordbinding)))
_com_issue_error(e_nointerface);

//将记录类绑定到recordset
m_piadorecordbinding-> bindtorecordset(&m_rsrecset);

//获得视图指针
position   pos   =   getfirstviewposition();

csdi_adodbview*   pview=(csdi_adodbview*)getnextview(pos);

if(pview)
pview-> refreshbounddata();
}
catch(_com_error   &e)
{
generateerror(e.error(),e.description());
}
return   true;
}


快速检索

最新资讯
热门点击