打印本文 打印本文 关闭窗口 关闭窗口
用Delphi的思想初步构建C++的ADO对象
作者:武汉SEO闵涛  文章来源:敏韬网  点击数3708  更新时间:2009/4/23 10:43:17  文章录入:mintao  责任编辑:mintao
p;     

       Connected.setter(&CAdoConnection::SetConnected);

       Connected.getter(&CAdoConnection::GetConnected);

       // 创建一个连接实例

       try {

              HRESULT hr = m_ptrConn.CreateInstance(__uuidof(Connection));

              if (FAILED(hr)) {

                     CString errormessage("创建实例失败!");

                     AfxMessageBox(errormessage);

              }

       }

       catch(_com_error & error) {

              CString errormessage;

              errormessage.Format("创建实例失败!\r\n错误信息:%s", error.ErrorMessage());

              AfxMessageBox(errormessage);

       }

      

       // 设定连接等待的最大秒数,默认是15

       m_ptrConn->ConnectionTimeout=15;

       UserName = "";

       PassWord = "";

}

 

CAdoConnection::~CAdoConnection()

{

       if (GetConnected())

              SetConnected(FALSE);

 

       m_ptrConn=NULL;

}

 

CAdoConnection::operator _ConnectionPtr()

{

       return m_ptrConn;

}

 

void CAdoConnection::SetConnected(BOOL ConnectFlag)

{

       if (TRUE == ConnectFlag) {

              try {

                     // 打开连接

                     m_ptrConn->Open(ConnectingString.c_str(), UserName.c_str(), PassWord.c_str(), adModeUnknown);

              }

              catch(_com_error & error) {

                     CString errormessage;

                     errormessage.Format("连接数据库失败!\r\n错误信息:%s", error.ErrorMessage());

                     AfxMessageBox(errormessage);

              }

       }

       else {

              m_ptrConn->Close();

       }

}

 

BOOL CAdoConnection::GetConnected()

{

       if (m_ptrConn->State == adStateOpen)

上一页  [1] [2] [3] [4] [5]  下一页

打印本文 打印本文 关闭窗口 关闭窗口