天天看點

vc連結資料庫和操作資料庫的函數清單

                       vc連結資料庫和操作資料庫的函數清單

         這是我寫的一個類,類名是ADOConn.cpp和ADOConn.h,主要作用就是把vc連結資料庫和操作資料庫的函數清單寫在了這裡面。把這個類加進vc中是可以直接運作的,你直接調用就行了。改一些路徑,他可以對access,SqlServer等資料庫進行很好的操作。

         第一個是ADOConn.cpp

// ADOConn.cpp: implementation of the ADOConn class. 

/////////////////////////////// 

#include "stdafx.h" 

#include "myshoujiDlg.h"     //主函數 

#include "ADOConn.h" 

#ifdef _DEBUG 

#undef THIS_FILE 

static char THIS_FILE[]=__FILE__; 

#define new DEBUG_NEW 

#endif 

// Construction/Destruction 

//////////////////////////////// 

ADOConn::ADOConn() 

ADOConn::~ADOConn() 

void ADOConn::OnInitADOConn()                                      //以調用access為例,其實調用SqlServer等也是一樣的

  ::CoInitialize(NULL);     //初始化COM元件 

  try 

  { 

             m_pConnection.CreateInstance("ADODB.Connection"); 

        _bstr_t strConnect="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=shouji.mdb";             //連結資料庫,這裡是shouji資料庫,可以根據具體情況改 

        m_pConnection->Open(strConnect,"","",adModeUnknown); 

  } 

  catch(_com_error e) 

    AfxMessageBox(e.Description()); 

_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)                        //捕捉異常 

    e.Description(); 

  return m_pRecordset; 

BOOL ADOConn::ExecuteSQL(_bstr_t bstrSQL)        //再打開資料庫後,執行Sql語句 

  _variant_t RecordsAffected; 

                if(m_pConnection==NULL) 

              OnInitADOConn(); 

                m_pConnection->Execute(bstrSQL,NULL,adCmdText); 

    return true; 

    return false; 

void ADOConn::ExitConnect()                    //退對外連結接 

        if(m_pRecordset!=NULL) 

    m_pRecordset->Close(); 

  m_pConnection->Close(); 

  ::CoUninitialize(); 

}

第二個是ADOConn.h

// ADOConn.h: interface for the ADOConn class. 

#if !defined(AFX_ADOCONN_H__A2B6E8CE_2220_4830_95F8_2911D1EAC453__INCLUDED_) 

#define AFX_ADOCONN_H__A2B6E8CE_2220_4830_95F8_2911D1EAC453__INCLUDED_ 

#import "C:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF") 

#if _MSC_VER > 1000 

#pragma once 

#endif // _MSC_VER > 1000 

class ADOConn     

public: 

        _ConnectionPtr m_pConnection; 

  _RecordsetPtr m_pRecordset; 

  ADOConn(); 

  virtual ~ADOConn(); 

  void OnInitADOConn(); 

        _RecordsetPtr&GetRecordSet(_bstr_t bstrSQL); 

        BOOL ExecuteSQL(_bstr_t bstrSQL); 

  void ExitConnect(); 

}; 

#endif // !defined(AFX_ADOCONN_H__A2B6E8CE_2220_4830_95F8_2911D1EAC453__INCLUDED_) 

         希望對你有所幫助。

     本文轉自阿龍哥 51CTO部落格,原文連結:http://blog.51cto.com/ililong/284962,如需轉載請自行聯系原作者