谁在VC6.0中用ado连接过sql server 2005数据库?
成功过没?vc6和sql server2005是啥版本?sp2的sql server2005企业版可联上不?连接字段是啥?谢谢!

解决方案 »

  1.   

    只连过ACCESS,不好意思帮不上快
      

  2.   

    1、ACCESS数据库的:ADOConn::ADOConn()
    {}ADOConn::~ADOConn()
    {}void ADOConn::OnInitADOConn()
    {
    ::CoInitialize(NULL);
    try
    {
           m_pConnection.CreateInstance("ADODB.Connection");
           //ACCESS数据库
           _bstr_t strConnect="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ck.mdb";//打开数据库ck.mdb为数据库
       m_pConnection->Open(strConnect,"","",adModeUnknown);
    }
    catch(_com_error e)
    {
    AfxMessageBox("初始化失败");
    }
    }_RecordsetPtr& ADOConn::GetRecordSet(_bstr_t bstrSQL)//获取记录集
    {
        try
    {
    if(m_pConnection==NULL)
                  OnInitADOConn();
    m_pRecordset.CreateInstance(__uuidof(Recordset));
            m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
    }
        catch(_com_error e)
    {
    AfxMessageBox("打开记录集失败");
    }
    return m_pRecordset;
    }BOOL ADOConn::ExecuteSQL(_bstr_t bstrSQL)//执行sql
    {
    _variant_t RecordsAffected;
    try
    {
            if(m_pConnection==NULL)
          OnInitADOConn();
            m_pConnection->Execute(bstrSQL,NULL,adCmdText);
    return true;
    }
    catch(_com_error e)
    {
    AfxMessageBox("执行失败");
    return false;
    }
    }void ADOConn::ExitConnect()//关闭数据库
    {
        if(m_pRecordset!=NULL)
    m_pRecordset->Close();
    m_pConnection->Close();
    ::CoUninitialize();
    }2、sql server 2000的(2005的没用过,可以参考一下2000的)ADOConn::ADOConn()
    {}ADOConn::~ADOConn()
    {}void ADOConn::OnInitADOConn()
    {
    ::CoInitialize(NULL);
    try
    {
            char szBuffer[255];//定义数组
            DWORD dwSize = 255;//大小
            GetComputerName(szBuffer,&dwSize);//得到计算机名称
    CString aa="";
    aa.Format("%s",szBuffer);  //szBuffer--->CString
            CString strCon; 
            strCon.Format("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;uid=sa;pwd=sa;Initial Catalog=dx-exam;Data Source=%s", aa); 
            _bstr_t strConnect = strCon;       m_pConnection.CreateInstance("ADODB.Connection");
    //    _bstr_t strConnect="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;uid=sa;pwd=sa;Initial Catalog=dx-exam;Data Source=mis-liuyong";//打开数据库
       m_pConnection->Open(strConnect,"","",adModeUnknown);
    }
    catch(_com_error e)
    {
    AfxMessageBox("初始化失败");
    }
    }_RecordsetPtr& ADOConn::GetRecordSet(_bstr_t bstrSQL)//获取记录集
    {
        try
    {
    if(m_pConnection==NULL)
                  OnInitADOConn();
    m_pRecordset.CreateInstance(__uuidof(Recordset));
            m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
    }
        catch(_com_error e)
    {
    AfxMessageBox("打开记录集失败");
    }
    return m_pRecordset;
    }BOOL ADOConn::ExecuteSQL(_bstr_t bstrSQL)//执行sql
    {
    _variant_t RecordsAffected;
    try
    {
            if(m_pConnection==NULL)
          OnInitADOConn();
            m_pConnection->Execute(bstrSQL,NULL,adCmdText);
    return true;
    }
    catch(_com_error e)
    {
    AfxMessageBox("执行失败");
    return false;
    }
    }void ADOConn::ExitConnect()//关闭数据库
    {
        if(m_pRecordset!=NULL)
    m_pRecordset->Close();
    m_pConnection->Close();
    ::CoUninitialize();
    }