📄 adoconn.cpp
字号:
// ADOConn.cpp: implementation of the CADOConn class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "ADOConn.h"
#include "ADOConn.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
//extern CServerPCApp theApp;
CADOConn::CADOConn()
{
}
CADOConn::~CADOConn()
{
ExitConnect();
}
BOOL CADOConn::OnInitDBConnect()
{
CString strConnection;
strConnection = "Provider=SQLOLEDB;Server=";
strConnection+= m_sServer + ";Database=";
strConnection+= m_sDatabase + ";uid=";
strConnection+= m_sUser + ";pwd=";
strConnection+= m_sPwd + ";";
ExitConnect();
::CoInitialize(NULL);
try
{
m_pConnection.CreateInstance(__uuidof(Connection));
_bstr_t strConnect = (_bstr_t)strConnection;
HRESULT hr;
hr = m_pConnection->Open(strConnect,"","",adModeUnknown);
}
catch(_com_error e)
{
return false;
}
return true;
}
BOOL CADOConn::GetRecordSet(_bstr_t bstrSQL)
{
try
{
if (m_pConnection == NULL)
{
OnInitDBConnect();
}
m_pRecordset.CreateInstance(_uuidof(Recordset));
m_pRecordset->Open(bstrSQL, (_variant_t)m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
}
catch (_com_error e)
{
return false;
}
return true;
}
BOOL CADOConn::ExecuteSQL(_bstr_t bstrSQL)
{
try
{
if (m_pConnection ==NULL)
{
OnInitDBConnect();
}
m_pRecordset = m_pConnection->Execute(bstrSQL,NULL,adCmdText);
}
catch (_com_error e)
{
return false;
}
return true;
}
void CADOConn::ExitConnect()
{
if (m_pRecordset != NULL)
{
m_pRecordset = NULL;
m_pConnection = NULL;
::CoUninitialize();
}
}
BOOL CADOConn::GetRecordCount(_bstr_t bstrSQL, int &nCount)
{
try
{
nCount = 0;
if (!ExecuteSQL(bstrSQL))
return false;
if (m_pRecordset->adoEOF && m_pRecordset->adoBOF)
{
return true;
}
while (!m_pRecordset->adoEOF)
{
nCount++;
m_pRecordset->MoveNext();
}
}
catch (...)
{
return false;
}
return true;
}
BOOL CADOConn::GetRecordDataChar(_bstr_t bstrSQL,CString sItemName, DWORD nNum,BSTR *pData)
{
if (nNum<1)
{
return true;
}
if (!GetRecordSet(bstrSQL))
{
return false;
}
m_pRecordset->MoveFirst();
for (DWORD i=0;i<nNum;i++)
{
if (!m_pRecordset->adoEOF)
{
_variant_t varTemp = m_pRecordset->GetCollect((_bstr_t)sItemName);
CString strTemp = (LPCTSTR)_bstr_t(varTemp);
strTemp.TrimRight();
pData[i] = strTemp.AllocSysString();
m_pRecordset->MoveNext();
}
}
return true;
}
BOOL CADOConn::GetRecordDataDWORD(_bstr_t bstrSQL,CString sItemName, DWORD nNum,DWORD *pData)
{
if (nNum<1)
{
return true;
}
if (!GetRecordSet(bstrSQL))
{
return false;
}
m_pRecordset->MoveFirst();
for (DWORD i=0;i<nNum;i++)
{
if (!m_pRecordset->adoEOF)
{
_variant_t varTemp = m_pRecordset->GetCollect((_bstr_t)sItemName);
if (varTemp.vt != VT_NULL)
{
pData[i] = varTemp.lVal;
}
else
{
pData[i] = 0;
}
m_pRecordset->MoveNext();
}
}
return true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -