adoconn.cpp

来自「SQL Server 数据库图片保存」· C++ 代码 · 共 86 行

CPP
86
字号
#include "StdAfx.h"
#include "ADOConn.h"

CADOConn::CADOConn(void)
{
	m_pConnection=NULL;
	
}

CADOConn::~CADOConn(void)
{
	
}
BOOL CADOConn::Execute(_bstr_t bstrSQL,_bstr_t DB_Name)
{
	try
	{
		if (m_pConnection==NULL)
		OnInitADOConn(DB_Name);
		m_pConnection->Execute(bstrSQL,NULL,adCmdText);
	//	m_pConnection->Execute((LPCSTR)bstrSQL, NULL, adExecuteNoRecords);

	}
	catch (_com_error e)
	{
		AfxMessageBox(e.ErrorMessage());
		return false;
	}
	return TRUE;
}
BOOL CADOConn::OnInitADOConn(_bstr_t DB_Name)
{
	::CoInitialize(NULL);
	try
	{
		m_pConnection.CreateInstance(__uuidof(Connection));
		m_pConnection->PutCursorLocation(adUseClient);

		_bstr_t connectionstring = "Provider=sqloledb;Data Source=";
		connectionstring += _T("(LOCAL)");
		connectionstring += ";Initial Catalog=";
		connectionstring += DB_Name;
		connectionstring += ";User Id=sa";
		connectionstring += ";Password=";
		connectionstring += ";";

		m_pConnection->Open(connectionstring,"","",adConnectUnspecified);
		/*	m_pConnection->ConnectionString="driver={SQL Server};server="";datebase="+DB_Name;
		m_pConnection->Open("","","",NULL);*/
	}

	catch (...)
	{
		AfxMessageBox(_T("初始化出错"));
		return false;
	}
	return TRUE;
}
void CADOConn::ExitConnect()
{

	m_pConnection->Close();
	::CoUninitialize();
}

_RecordsetPtr CADOConn::GetRecordset(_bstr_t bstrSQL,_bstr_t DB_Name)
{

	try
	{
		if(m_pConnection==NULL)
		OnInitADOConn(DB_Name);
		m_pRecordset.CreateInstance(__uuidof(Recordset));
	//	m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdText);
	
		m_pRecordset->Open(bstrSQL, _variant_t((IDispatch *)m_pConnection,true), adOpenKeyset,adLockOptimistic, adCmdText);
	//	pRecordset->Open(vtSQL, _variant_t( (IDispatch *) pConnection,true), 
	//	adOpenKeyset,adLockOptimistic, adCmdText);
	}
	catch (_com_error e)
	{
		AfxMessageBox(e.ErrorMessage());
		//return m_pRecordset=NULL;
	}
	return m_pRecordset;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?