C++連接SQL


1.引入ADO
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")

2.創建連接數據庫類(兩個指針及四個成員函數)

class CADOConn 
{
public:
 CADOConn();
 virtual ~CADOConn();

 _ConnectionPtr m_pConnection; //對象智能指針連接操作數據庫
 _RecordsetPtr m_pRecordPtr; //Recordset對象指針(記錄集)

 //初始化連接數據庫,執行查詢,執行SQL語句,斷開連接
 void OnInitDBConnect();
 _RecordsetPtr &GetRecordSet(_bstr_t bstrSQL);
 BOOL ExecuteSQL(_bstr_t bstrSQL);
 void ExitConnect();

};

  

 

 

3.四個成員函數實現

void CADOConn::OnInitDBConnect()
{
 ::CoInitialize(NULL); //初始化OLE/COM庫環境
 try
 {
 //創建connection對象
       m_pConnection.CreateInstance("ADODB.Connection");   
    //設置連接字符串
    _bstr_t strConnect="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=自己數據庫填寫處;Data Source=.";
    //SERVER和UID,PWD的設置根據實際情況來設置
    m_pConnection->Open(strConnect,"","",adModeUnknown);
 }
 catch(_com_error e)
 {
  AfxMessageBox(e.Description()); //顯示錯誤信息
 }
}

_RecordsetPtr & CADOConn::GetRecordSet(_bstr_t bstrSQL)
{
 try
 {
  if(m_pConnection==NULL) //連接對象不存在
   OnInitDBConnect(); //重新連接
  m_pRecordPtr.CreateInstance(_uuidof(Recordset)); //創建記錄集對象
  //執行查詢,等到記錄集
  m_pRecordPtr->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
 }
 catch(_com_error e) //捕捉異常
 {
  AfxMessageBox(e.Description()); //顯示錯誤信息
 }
 return m_pRecordPtr; //返回記錄集
}


BOOL CADOConn::ExecuteSQL(_bstr_t bstrSQL)
{
 try
 {
  if(m_pConnection==NULL)
   OnInitDBConnect();
  m_pConnection->Execute(bstrSQL,NULL,adCmdText);
  return true;
 }
 catch (_com_error e)
 {
  AfxMessageBox(e.Description());
  return false;  
 } 
}

 

void CADOConn::ExitConnect()
{
 if(m_pConnection!=NULL)
 {
  m_pRecordPtr->Close();
  m_pConnection->Close();
 }
 ::CoUninitialize();
}

  

鏈接:https://pan.baidu.com/s/1v5gm7n0L7TGyejCmQrMh2g 提取碼:x2p5

免費分享,但是X度限制嚴重,如若鏈接失效點擊鏈接或搜索加群 群號744933466


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM