www.pudn.com > LoadMachineCode111.rar > CDatabaseOperate.cpp


// CDatabaseOperate.cpp: implementation of the CCDatabaseOperate class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#include "stdafx.h" 
#include "loadmachinecode.h" 
#include "CDatabaseOperate.h" 
 
#ifdef _DEBUG 
#undef THIS_FILE 
static char THIS_FILE[]=__FILE__; 
#define new DEBUG_NEW 
#endif 
 
////////////////////////////////////////////////////////////////////// 
// Construction/Destruction 
////////////////////////////////////////////////////////////////////// 
 
CCDatabaseOperate::CCDatabaseOperate() 
{ 
    m_pConnection = NULL; 
    m_pRecordset  = NULL; 
 
} 
 
CCDatabaseOperate::~CCDatabaseOperate() 
{ 
	if(m_pConnection!=NULL) 
	{ 
      m_pRecordset ->Close(); 
	  m_pConnection ->Close(); 
	} 
} 
 
BOOL CCDatabaseOperate::OpenDatabase(CString m_server, CString m_name, CString m_password, CString m_database) 
{ 
	HRESULT hr; 
	_bstr_t bt; 
 
	BOOL m_bConnected=FALSE; 
 
	bt=(_bstr_t)"Provider=SQLOLEDB.1;Persist Security Info=False;User ID=lijian;Password=123456;Initial Catalog=loadmachinecode;Data Source=lijian"; 
	try 
	{ 
		hr=m_pConnection.CreateInstance("ADODB.Connection"); 
		//if(!m_pConnection->State) 
			//m_pConnection->Close(); ///如果已经打开了连接则关闭它 
		if(SUCCEEDED(hr)) 
			{ 
			m_pConnection->ConnectionTimeout = 5;///设置超时时间为5秒 
			hr=m_pConnection->Open(bt,_bstr_t(""),_bstr_t(""),adModeUnknown); 
			ASSERT(SUCCEEDED(hr)); 
			m_bConnected=TRUE; 
			} 
		} 
	catch(_com_error e) 
		{ 
		CString errormessage; 
		errormessage.Format("连接数据库出错!\r\n 错误信息:=%s",e.ErrorMessage()); 
		AfxMessageBox(errormessage); 
		} 
 
	return TRUE; 
 
} 
 
BOOL CCDatabaseOperate::Openrecordset(CString m_recordname) 
{ 
	HRESULT hr; 
	_bstr_t bt; 
	CString str; 
	bt=(_bstr_t)"select * from loadmachinecode"; 
	try 
	{ 
		hr=m_pRecordset.CreateInstance("ADODB.Recordset"); 
		ASSERT(SUCCEEDED(hr)); 
		hr=m_pRecordset->Open(bt,_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText); 
	    ASSERT(SUCCEEDED(hr)); 
		//m_pRecordset->MoveLast; 
	} 
	catch(_com_error e) 
		{ 
		CString errormessage; 
		errormessage.Format("打开数据库出错!\r\n 错误信息:=%s",e.ErrorMessage()); 
		AfxMessageBox(errormessage); 
		} 
 
	return TRUE; 
} 
 
BOOL CCDatabaseOperate::CloseDatabase() 
{ 
	try 
	{ 
		if (m_pConnection != NULL && m_pConnection->State == adStateOpen)  
		{ 
			if (SUCCEEDED(m_pConnection->Close())) 
			{ 
				return TRUE; 
			} 
		} 
	} 
	catch(_com_error e) 
	{ 
		TRACE(_T(":( 关闭数据库发生异常: %s\n"), e.ErrorMessage()); 
		return FALSE; 
	}  
	return FALSE; 
 
} 
 
BOOL CCDatabaseOperate::CloseRecordset() 
{ 
	try 
	{ 
		if (m_pRecordset != NULL && m_pRecordset->State != adStateClosed) 
		{ 
			return SUCCEEDED(m_pRecordset->Close()); 
		} 
		return TRUE; 
	} 
	catch (const _com_error& e) 
	{ 
		TRACE(_T(":( 关闭记录集发生异常: %s\n"), e.ErrorMessage()); 
		return FALSE; 
	} 
 
	return TRUE; 
 
}