关于ADO连接报告无效指针
void CADOtestDlg::OnBnClickedButton1()
{
_ConnectionPtr m_pConnection;
HRESULT hr;
try
{
::CoInitialize(NULL);//com库初始化
hr=m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
m_pAppConn->Open(_bstr_t((LPCTSTR) m_AppConnString) , _T("") , _T("") , adModeUnknown);
if(SUCCEEDED(hr))
{
hr=m_pConnection->Open("driver={SQLSERVER};Server=XXX.XX.XXX.XX,XXXX;DATABASE=XXXXX;UID=XXXXX;PWD=XXXXXXX","","",adModeUnknown);
}
}
catch (_com_error e)
{
CString errormessage;
errormessage.Format(_T("连接数据库失败\r\n错误信息:%s"),e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
}
代码如上,其中数据库服务器的地址账号密码什么的略了,应该不是这个的问题,运行时错误信息是无效指针,变量在头文件里面声明过的:
_ConnectionPtr m_pAppConn;//连接对象指针
CString m_AppConnString;//连接字符串的声明
bool m_bConnected; //连接标志
引入ADO类型库我是这样写的
#if defined(ADO2_OLD)
#pragma message( "Using ADO2 TLB" )
#import <msado20.tlb> no_namespace rename("EOF", "adoEOF")
#else #pragma message( "Using Latest ADO" )
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")
#endif
不知道问题会不会出在这里,但是编译是通过的
环境是,我的电脑是win7 ,编译器用的VS2010,服务器系统是windows server2008,数据库是SQL server2008
这个问题困扰我两天了,求大神赐教,需要看其他部分代码可以留言告诉我,十分感谢~!