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 + -
显示快捷键?