我在CDlialog1里面定义了_RecordsetPtr m_red;
在主程序里面CDialog里面定义了_ConnectionPtr m_con;
并且在主程序里面连接数据库成功。
在CDlialog1里面定义了CDialog指针m_purdlg,并初始化。
问题处在在:在CDlialog1里面m_red->Open("SELECT * FROM group",_variant_t((IDispatch*)(m_purdlg->m_con),true), adOpenStatic,adLockOptimistic,adCmdText);的时候程序崩溃了。请问什么原因啊?
m_red.CreateInstance(__uuidof(Recordset));
try{
m_red->Open("SELECT * FROM group",_variant_t((IDispatch*)(m_purdlg->m_con),true),
adOpenStatic,adLockOptimistic,adCmdText);
在主程序里面CDialog里面定义了_ConnectionPtr m_con;
并且在主程序里面连接数据库成功。
在CDlialog1里面定义了CDialog指针m_purdlg,并初始化。
问题处在在:在CDlialog1里面m_red->Open("SELECT * FROM group",_variant_t((IDispatch*)(m_purdlg->m_con),true), adOpenStatic,adLockOptimistic,adCmdText);的时候程序崩溃了。请问什么原因啊?
m_red.CreateInstance(__uuidof(Recordset));
try{
m_red->Open("SELECT * FROM group",_variant_t((IDispatch*)(m_purdlg->m_con),true),
adOpenStatic,adLockOptimistic,adCmdText);
解决方案 »
- 如何判断鼠标是否在窗口上
- listbox control控件,m_list_info.AddString(strMsg);多行当中怎么才能添加到第一行?
- 看了这么长时间的VC,可是面向对象编程的思想,还是没有,还是想着C语言的那种按部就班的编程,希望各位前辈提供点建议意见。
- MFC链表类怎么用啊?
- 请教:串口通信(用moden做语音自动应答系统)
- 目前ftp多线程下载的疑问,网络高手请进
- SQL语句编写:如何在分组查询时获取相关记录的更多字段
- 500¥人民币 请教一个问题!!
- 如何在对话框资源中加入菜单?
- 请问那位高手知道.DXF文件接口程序在哪儿能找到
- CFileDialog的回调函数OFNHookProc的问题
- 剪切板操作的问题
try{
m_red->Open("SELECT * FROM group",_variant_t((IDispatch*)(m_purdlg->m_con),true),
adOpenStatic,adLockOptimistic,adCmdText);
}catch(_com_error e){MessageBox(e.Description());}
是不是我没有说清楚。我在一个类中连接了数据库。在另外一个类中用m_RecordsetPtr打开一个表的数据集。但是打开数据集的语句是整个程序崩溃了。且捕捉异常不能捕捉到。
m_red->Open("SELECT * FROM group",_variant_t((IDispatch*)(m_purdlg->m_con),true),
adOpenStatic,adLockOptimistic,adCmdText);
中的:m_purdlg->m_con引起的。假如说:在同一个类中连接数据库得到_ConnectionPtr对象就不会出错。
因为我的那个对话框一直存在呢。
{
V_VT(this) = VT_DISPATCH;
V_DISPATCH(this) = pSrc; // Need the AddRef() as VariantClear() calls Release(), unless fAddRef
// false indicates we're taking ownership
//
if (fAddRef) {
V_DISPATCH(this)->AddRef();
}
}问题出现在V_DISPATCH(this)->AddRef();这句了。说是读取位置 0x00000000 时发生访问冲突。
请问什么原因啊。
我昨天试了一下发现
m_red->Open("SELECT * FROM group",_variant_t((IDispatch*)(m_purdlg->m_con),true),
adOpenStatic,adLockOptimistic,adCmdText);
m_purdlg->m_con这个值根本不能得到。
但是说:我在要得到数据集的这个类中好像只能这么定义一个类的成员变量,在去得到另外一个类的数据。
private:
CHeadDlg *m_purdlg;
在。cpp文件中:m_purdlg = new CHeadDlg;然后在调用。
应该没有错啊。