adoconnect.cpp

来自「一个图书馆信息查询系统。是根据学校图书馆的实际情况调查后开发」· C++ 代码 · 共 79 行

CPP
79
字号
// AdoConnect.cpp: implementation of the AdoConnect class.

#include "AdoConnect.h"
#include <stdarg.h>
#include <tchar.h>

void UniteBSTR(_bstr_t & bstr, _variant_t first, ...)
{
	bstr =	"";
	_bstr_t	param = (_bstr_t)first;
	TCHAR *	p;
	int		length;

	va_list	list;
	va_start(list, first);
	do
	{
		bstr += param;
		p = (TCHAR *)param;
		length = lstrlen(p);
		if(*(p+length-1) == ';')
			break;
		param = (_bstr_t)va_arg(list, _variant_t);
	}while(TRUE);
	va_end(list);
}

AdoConnect::AdoConnect()
{
	m_pConnection	= NULL; 
	m_pRecordset	= NULL;
}

AdoConnect::~AdoConnect()
{
}

void AdoConnect::OnInitDBConnect()
{
	::CoInitialize(NULL);
	_bstr_t bstrDataBase = "Provider=SQLOLEDB;\
		Server=JIMSOFT;Database=xlibrary;uid=sa;pwd=022114113;";
 	m_pConnection.CreateInstance("ADODB.Connection");
 	m_pConnection->Open(bstrDataBase, "", "", adModeUnknown);
}

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

_RecordsetPtr & AdoConnect::GetRecordset(_bstr_t bstrSQL)
{ 
	if(m_pConnection == NULL)
		OnInitDBConnect();
	m_pRecordset.CreateInstance(__uuidof(Recordset));
	m_pRecordset->Open(bstrSQL, m_pConnection.GetInterfacePtr(),
		adOpenDynamic, adLockOptimistic, adCmdText);
 	return m_pRecordset;
}

// 按条件执行操作
BOOL AdoConnect::ExecuteSQL(_bstr_t bstrSQL)
{ 
	if(m_pConnection == NULL)
		OnInitDBConnect();
	m_pConnection->Execute(bstrSQL, NULL, adCmdText);
	return TRUE;
}

⌨️ 快捷键说明

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