【菜鸟求教】VC6通过ADO连接SQL server2008失败 20C

先给出工具类的定义
class CAdoUtil

{
public:
BOOL ConnectDB();
BOOL DisConnectDB();
BOOL ConnectDB(CString &szServer,CString &szName,CString &szPassword);

_ConnectionPtr GetConnectionPtr();
CAdoUtil();
virtual ~CAdoUtil();

private:
_ConnectionPtr m_pconnection;
};

 无参连接函数
 BOOL CAdoUtil::ConnectDB()
{
        CString szServer    ="127.0.0.1";
        CString szname  ="Runner";
        CString szpassword  ="123456";
        try
        {
            if(ConnectDB(szServer,szname,szpassword)    ==FALSE)
            {
                return false;
            }
        }
        catch(_com_error e)
        {
            throw e;
        }
        return true;
    }

含参连接函数
BOOL CAdoUtil::ConnectDB(CString &szServer, CString &szName, CString &szPassword)
{
if(m_pconnection!=NULL)
return FALSE;
CString szconnect ="";
szconnect.Format(_T("Provider=SQLOLEDB.1;Server=%s;DataBase=Warehouse_managemen_system;User ID=%s;Password=%s;"),szServer,szName,szPassword);

try
{
    HRESULT hr  =m_pconnection.CreateInstance(__uuidof(Connection));
    if(FAILED(hr))
    {   AfxMessageBox("程序异常1");
        return FALSE;
    }

        if(FAILED(m_pconnection->Open((_bstr_t)szconnect,_T(""),_T(""),adModeUnknown)))  //__用断点调试发现是这里除了异常,为E_FAIL
    {   //  AfxMessageBox("程序异常2");
    m_pconnection.Release();
    return FALSE;
    }
}
catch(_com_error e)
{
    if(m_pconnection!=NULL &&m_pconnection->GetState()!= adStateClosed)
    {
        m_pconnection->Close();
        m_pconnection.Release();
        m_pconnection   =NULL;
    }
    throw e;
}
catch(...)
{
    AfxMessageBox("程序异常A");
}
return true;

}
数据库通过Server身份验证方式登陆,用了自己创建的用户Runner,表有如下配置
图片说明
本人学生,没系统学过数据库和ADO,还望各位多多包涵~

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!