📄 adoconnect.cpp
字号:
// 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -