⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adoprocess.cpp

📁 用ATL写的操作数据库实例
💻 CPP
字号:
// AdoProcess.cpp : Implementation of CAdoProcess
#include "stdafx.h"
#include "DcomServer.h"
#include "AdoProcess.h"

/////////////////////////////////////////////////////////////////////////////
// CAdoProcess


STDMETHODIMP CAdoProcess::InitData(BSTR sServer, BSTR sDataBase, BSTR sUser, BSTR sPwd)
{
	m_AdoConn.m_sServer		= CString(sServer);
	m_AdoConn.m_sDatabase	= CString(sDataBase);
	m_AdoConn.m_sUser		= CString(sUser);
	m_AdoConn.m_sPwd		= CString(sPwd);
	return S_OK;
}

STDMETHODIMP CAdoProcess::Connect()
{
	if(m_AdoConn.OnInitDBConnect())
		return S_OK;
	else
		return E_NOTIMPL;		
}

STDMETHODIMP CAdoProcess::ExecuteSQL(BSTR bstrSQL)
{
	CString sSql = CString(bstrSQL);
	if (m_AdoConn.ExecuteSQL((_bstr_t)sSql))
	{
		return S_OK;
	}
	else
	{
		return E_NOTIMPL;
	}
}

STDMETHODIMP CAdoProcess::GetRecordCount(BSTR bstrSQL, DWORD *nCount)
{
	CString sSql = CString(bstrSQL);
	int num = 0;
	if (!m_AdoConn.GetRecordCount((_bstr_t)sSql,num))
	{
		return E_NOTIMPL;
	}
	*nCount = (DWORD)num;
	return S_OK;
}

STDMETHODIMP CAdoProcess::ExitConnect()
{
	m_AdoConn.ExitConnect();
	return S_OK;
}

STDMETHODIMP CAdoProcess::GetRecordDataChar(BSTR bsSql, BSTR sItemName, DWORD nNum, VARIANT *pData)
{
	BSTR *bData = new BSTR[nNum];
	VariantInit(pData); 
	pData->vt = VT_ARRAY|VT_I4;   
	SAFEARRAY *psa;   
	SAFEARRAYBOUND bd = {nNum ,0 };
	psa = SafeArrayCreate(VT_BSTR/*BSTR类型*/,1/*一维数组*/,&bd);		
	SafeArrayAccessData(psa,(void**)&bData);   
	if(m_AdoConn.GetRecordDataChar((_bstr_t)bsSql,CString(sItemName),nNum,bData))
	{
		SafeArrayUnaccessData(psa);   
		pData->parray = psa; 
		return S_OK;
	}
	else
	{
		SafeArrayUnaccessData(psa);
		return E_NOTIMPL;
	}
}

STDMETHODIMP CAdoProcess::GetRecordDataDWORD(BSTR bsSql, BSTR sItemName, DWORD nNum, VARIANT *pData)
{
	int *bData = new int[nNum];
	VariantInit(pData); 
	pData->vt = VT_ARRAY|VT_I4;   
	SAFEARRAY *psa;   
	SAFEARRAYBOUND bd = {nNum ,0 };
	psa = SafeArrayCreate(VT_I4/*int类型*/,1/*一维数组*/,&bd);		
	SafeArrayAccessData(psa,(void**)&bData);   
	if(m_AdoConn.GetRecordDataDWORD((_bstr_t)bsSql,CString(sItemName),nNum,(DWORD *)bData))
	{
		SafeArrayUnaccessData(psa);   
		pData->parray = psa; 
		return S_OK;
	}
	else
	{
		SafeArrayUnaccessData(psa);
		return E_NOTIMPL;
	}
}

⌨️ 快捷键说明

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