运行try程序直接崩溃了???

sevb01 2013-09-26 05:09:10
这是我的代码,运行时程序直接崩溃了,在不运行try内的代码时可以正常运行
CLx1Dlg::CLx1Dlg(CWnd* pParent /*=NULL*/)
: CDialog(CLx1Dlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CLx1Dlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
//链接数据表

m_pRecordset.CreateInstance(_uuidof(Recordset));
HRESULT Open(const _variant_t & Source,const _variant_t & ActiveConnection,enum CursorTypeEnum CursorType,enum LockTypeEunm LockType,long Options);
CString strSQL="select * from cangku";
try
{
//从数据库中打开表
m_pRecordset->Open(_bstr_t(strSQL),m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error e)
{
CString strError;
strError.Format("警告:打开数据表时发生异常。错误信息:%s",e.ErrorMessage());
AfxMessageBox(strError);
return;
}
}

下边这两张是调试运行的截图

...全文
254 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2013-09-27
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。
洞凡都都 2013-09-27
  • 打赏
  • 举报
回复
::AfxOleInit(); CString OpenStr ; OpenStr.Format("driver={SQL Server};SERVER=%s,1433;DATABASE=%s;UID=%s;PWD=%s","127.0.0.1","dd","sa","123456"); //AfxMessageBox(OpenStr); CString ErrorStr ; try{ m_pConnection.CreateInstance("ADODB.Connection"); m_pConnection->ConnectionTimeout=5; m_pConnection->Open((_bstr_t)OpenStr,"","",adModeUnknown); }catch(_com_error e){ //ErrorStr.Format("%s",e.Description()); AfxMessageBox(e.Description()); return FALSE; }
洞凡都都 2013-09-27
  • 打赏
  • 举报
回复
你先确认数据库连接成功,m_pConnection 不为空再做操作。
sduxiaoxiang 2013-09-27
  • 打赏
  • 举报
回复
引用 4 楼 u012211908 的回复:
[quote=引用 3 楼 sduxiaoxiang 的回复:] [quote=引用 2 楼 u012211908 的回复:] 我是菜鸟,告诉 我怎么解决吧
m_pConnection赋值[/quote] 我的数据库连接成功了m_pConnection是不是就有值了 不是这个代码有问题 要改一下 m_pRecordset->Open(_bstr_t(strSQL),m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);[/quote] 这个可能失败吧
max_min_ 2013-09-26
  • 打赏
  • 举报
回复
m_pConnection.GetInterfacePtr() 这个有问题的! m_pConnection为NULL,没有给它作赋值操作的! 是全局的得看代码自己改改
sevb01 2013-09-26
  • 打赏
  • 举报
回复
引用 3 楼 sduxiaoxiang 的回复:
[quote=引用 2 楼 u012211908 的回复:] 我是菜鸟,告诉 我怎么解决吧
m_pConnection赋值[/quote] 我的数据库连接成功了m_pConnection是不是就有值了 不是这个代码有问题 要改一下 m_pRecordset->Open(_bstr_t(strSQL),m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
sduxiaoxiang 2013-09-26
  • 打赏
  • 举报
回复
引用 2 楼 u012211908 的回复:
我是菜鸟,告诉 我怎么解决吧
m_pConnection赋值
sevb01 2013-09-26
  • 打赏
  • 举报
回复
我是菜鸟,告诉 我怎么解决吧
sduxiaoxiang 2013-09-26
  • 打赏
  • 举报
回复
m_pConnection是null,调用了GetInterfacePtr()

64,647

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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