www.pudn.com > vclinkSQL11.rar > ADOConnect.cpp


// ADOConnect.cpp: implementation of the ADOConnect class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#include "stdafx.h" 
#include "vcSQL.h" 
#include "ADOConnect.h" 
 
#ifdef _DEBUG 
#undef THIS_FILE 
static char THIS_FILE[]=__FILE__; 
#define new DEBUG_NEW 
#endif 
 
////////////////////////////////////////////////////////////////////// 
// Construction/Destruction 
////////////////////////////////////////////////////////////////////// 
 
ADOConnect::ADOConnect() 
{ 
  
} 
 
ADOConnect::~ADOConnect() 
{ 
 
} 
 
 
void ADOConnect::OnInitADOConnect() 
{ 
	::CoInitialize(NULL); 
	try 
	{ 
	  m_pConnection.CreateInstance("ADODB.Connection"); 
 
	  _bstr_t StrConnect="Provider=SQLOLEDB;Server=ALEX;Database=pubs;Uid=sa;Pwd=123456"; 
      m_pConnection->Open(StrConnect,"","",adModeUnknown); 
	} 
	catch(_com_error e) 
	{ 
	  AfxMessageBox(e.Description()); 
	} 
} 
 
_RecordsetPtr& ADOConnect::GetRcordset(_bstr_t bstrSQL) 
{ 
   try 
   { 
     if(m_pConnection==NULL) 
		OnInitADOConnect(); 
		m_pRecordset.CreateInstance(__uuidof(Recordset)); 
	    m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText); 
   }	    
   catch(_com_error e) 
   { 
	  AfxMessageBox(e.Description()); 
   } 
   return m_pRecordset; 
} 
BOOL ADOConnect::ExecuteSQL(_bstr_t bstrSQL) 
{ 
  try 
  { 
    if(m_pConnection==NULL) 
		OnInitADOConnect(); 
	   m_pConnection->Execute(bstrSQL,NULL,adCmdText); 
	   return true; 
  } 
  catch(_com_error e) 
  { 
    AfxMessageBox(e.Description()); 
    return false; 
  } 
} 
 
void ADOConnect::ExitConnect() 
{ 
  if(m_pRecordset!=NULL) 
	 m_pRecordset->Close(); 
     m_pConnection->Close(); 
	 ::CoUninitialize(); 
 
}