在stdafx.h中添加了
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")
在view.h中添加了
public:
_ConnectionPtr m_connection;
_RecordsetPtr m_recordset;
_CommandPtr m_command;
private:
CString m_strSource;
BOOL m_fConnected;代码如下: _bstr_t source("Driver={SQL Server};Server=D6172F39;Uid=Administrator;Pwd=12345678;Database=hh");
_bstr_t user("");
_bstr_t pwd(""); HRESULT hr;
try{
hr = m_connection.CreateInstance(_uuidof(Connection));
if(SUCCEEDED(hr))
hr = m_connection->Open(source, user, pwd, 16);
if(SUCCEEDED(hr))
hr = m_recordset.CreateInstance(_uuidof(Recordset));
if(SUCCEEDED(hr))
m_fConnected = TRUE;
else
m_fConnected = FALSE;
}
catch (_com_error &e){
MessageBox(e.ErrorMessage());
m_fConnected = FALSE;
}
if(!m_fConnected) MessageBox("ADO数据源初始化失败!");
else m_strSource = (const char * )source;调试的时候,在hr = m_connection.CreateInstance(_uuidof(Connection));这句hr好像是返回0。可是我自己建的hr返回的是个很大的负数。而且m_connection还是0x0000000,这是为什么?哪里不对?我用数据库的工具访问数据库都能访问。一点问题都没有。
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")
在view.h中添加了
public:
_ConnectionPtr m_connection;
_RecordsetPtr m_recordset;
_CommandPtr m_command;
private:
CString m_strSource;
BOOL m_fConnected;代码如下: _bstr_t source("Driver={SQL Server};Server=D6172F39;Uid=Administrator;Pwd=12345678;Database=hh");
_bstr_t user("");
_bstr_t pwd(""); HRESULT hr;
try{
hr = m_connection.CreateInstance(_uuidof(Connection));
if(SUCCEEDED(hr))
hr = m_connection->Open(source, user, pwd, 16);
if(SUCCEEDED(hr))
hr = m_recordset.CreateInstance(_uuidof(Recordset));
if(SUCCEEDED(hr))
m_fConnected = TRUE;
else
m_fConnected = FALSE;
}
catch (_com_error &e){
MessageBox(e.ErrorMessage());
m_fConnected = FALSE;
}
if(!m_fConnected) MessageBox("ADO数据源初始化失败!");
else m_strSource = (const char * )source;调试的时候,在hr = m_connection.CreateInstance(_uuidof(Connection));这句hr好像是返回0。可是我自己建的hr返回的是个很大的负数。而且m_connection还是0x0000000,这是为什么?哪里不对?我用数据库的工具访问数据库都能访问。一点问题都没有。
(".1"是版本号,可要可不要)
是两个下滑线. CString strConnect ="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=master;Data Source=HPSERVER";
try
{
m_pConnection.CreateInstance(__uuidof(Connection));
m_pConnection->Open((_bstr_t)strConnect,"","",adModeUnknown);
}
BOOL CMyDaExApp::InitInstance()
{
if (!AfxOleInit())
{
AfxMessageBox("ole 初始化错误");
return FALSE;
}
AfxEnableControlContainer();
..............}