我在主对话框中添加了一个_ConnectionPtr的全局变量m_Conn,现在主对话框点击一个按钮弹出副对话框,然后在副对话框中执行数据库插入语句,也就是insert into。我想直接引用主对话框的m_Conn变量,用其Execute方法执行,代码如下:
((CADOTestDlg *)AfxGetApp())->m_Conn->Execute(_bstr_t(strsql),0,adCmdText);发现不行,然后
我在副话框中重新申明一个_ConnectionPtr类型的全局变量m_Conn2,初始化也不行。最后我尝试在主对话框单击那个按钮的消息中,我把主对话框的m_Conn变量赋给副对话框的m_Conn2也不行。注:副对话框是非模态对话框。
((CADOTestDlg *)AfxGetApp())->m_Conn->Execute(_bstr_t(strsql),0,adCmdText);发现不行,然后
我在副话框中重新申明一个_ConnectionPtr类型的全局变量m_Conn2,初始化也不行。最后我尝试在主对话框单击那个按钮的消息中,我把主对话框的m_Conn变量赋给副对话框的m_Conn2也不行。注:副对话框是非模态对话框。
m_pDlg->m_Conn->Execute(_bstr_t(strsql),0,adCmdText);
m_pDlg->m_Conn->Execute(_bstr_t(strsql),0,adCmdText);照这样做,程序提示无效指针,哪位朋友帮帮我啊!
try
{
::CoInitialize(NULL);
m_Conn.CreateInstance(_uuidof(Connection));
m_Conn->Open("Provider=SQLOLEDB;Server=HCN;uid=sa;pwd=;Database=finance","","",adConnectUnspecified);
}
catch(_com_error e)
{
AfxMessageBox(e.ErrorMessage()); }
CADOTestDlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();然后在主对话框用:theApp.m_Conn->Execute(_bstr_t(strsql),0,adCmdText);执行时说theApp指针没定义,然后我换成:((CADOTestApp*)AfxGetApp())->m_Conn->Execute(_bstr_t(strsql),&ra,adCmdText);主对话框能用,不过副对话框还是提示:IDispatch error #3092出错信息,真是奇怪,哪位高人帮帮我啊。
{
CString strComError;
strComError.Format("错误编号: %08lx\n错误信息: %s\n错误源: %s\n错误描述: %s",
e.Error(), // 错误编号
e.ErrorMessage(), // 错误信息
(LPCSTR) e.Source(), // 错误源
(LPCSTR) e.Description()); // 错误描述
::MessageBox(NULL,strComError,"错误",MB_ICONEXCLAMATION);
}这里也提到过
http://community.csdn.net/Expert/topic/4868/4868644.xml?temp=.7508661
---------------
extern CXXXXApp theApp;