亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ado.cpp

?? vc++的技巧查找方式源代碼。
?? CPP
字號(hào):
// ADO.cpp: implementation of the CADO class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "ADO.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CADO::CADO()
{
	m_pRecordset = NULL;
	m_pConnection = NULL;
	m_szConnectionString = _T("");
	m_szSQL = _T("");
	m_szUdlFileName = _T("");

	m_nRecordCount = -1;
	m_bCmd = TRUE;
}

CADO::~CADO()
{
	CloseDatabaseConnection();
}

BOOL CADO::CloseDatabaseConnection()
{
	if(NULL != m_pRecordset)
	{
		if(m_pRecordset->State)
		{
			m_pRecordset->Close();
			m_pRecordset = NULL;
		}
	}
	
	if(NULL != m_pConnection)
	{
		if(m_pConnection->State)
		{
			m_pConnection->Close();
			m_pConnection = NULL;
		}
	}

	return TRUE;
}

BOOL CADO::InitDatabaseConnection()
{
	BOOL bRet;
	HRESULT hr = S_OK;

	bRet = FALSE;

	if(!m_szUdlFileName.IsEmpty())
	{
		m_szConnectionString.Format(_T("File Name=%s"), m_szUdlFileName);
	}

	if(m_szConnectionString.IsEmpty())
	{
		return FALSE;
	}
	//初始化COM 庫
//	::CoInitialize(NULL);
	//AfxOleInit();
	///////////////////連接數(shù)據(jù)庫///////////////////
	try
	{
		hr = m_pConnection.CreateInstance("ADODB.Connection");
		//連接SQL SERVER
		//m_pConnection->Open("Driver=SQL Server;Database=test;Server=127.0.0.1;UID=sa;PWD=;","","",adModeUnknown);
		//連接ACCESS2000
		if(SUCCEEDED(hr))
		{
//			hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Test.mdb;Password=;Persist Security Info=False","","",adModeUnknown);
			hr = m_pConnection->Open(_bstr_t(m_szConnectionString), "", "", adModeUnknown);
			bRet = TRUE;
		}

		//上面一句中連接字串中的Provider是針對ACCESS2000環(huán)境的,對于ACCESS97,需要改為:Provider=Microsoft.Jet.OLEDB.3.51;
	}
	catch(_com_error e)///捕捉異常
	{
		CString str;
		str.Format("數(shù)據(jù)庫連接失敗! \n\n%s", e.ErrorMessage());
		AfxMessageBox(str);
		bRet = FALSE;
	}
	catch(...)
	{
		AfxMessageBox("Error!");
		bRet = FALSE;
	}

	try
	{
		hr = m_pRecordset.CreateInstance("ADODB.Recordset");
		if(SUCCEEDED(hr))
		{
			//hr = m_pRecordset->Open("SELECT * FROM UserName",_variant_t((IDispatch *)m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText);
			/*
			if(SUCCEEDED(hr))
			{
				NULL;
			}
			*/
		}
		else
		{
			bRet = FALSE;

			AfxMessageBox("創(chuàng)建ADO記錄集實(shí)例出錯(cuò)!");
		}
	}
	catch(...)
	{
		AfxMessageBox("Error!");
		bRet = FALSE;
	}

	return bRet;
}

BOOL CADO::GetFieldsName(CStringArray &saFieldsName)
{
	if(m_bCmd)
	{
		return FALSE;
	}

	BOOL bRet=FALSE;
	long nFieldsCount=0;
	CString szField("");

	if(NULL != m_pRecordset)
	{
		nFieldsCount = m_pRecordset->GetFields()->Count;
		saFieldsName.RemoveAll();

		for(long i=0; i<nFieldsCount; i++)
		{
			szField.Format(_T("%s"), (char*)(m_pRecordset->GetFields()->Item[i]->Name));
			saFieldsName.Add(szField);
			bRet = TRUE;
		}
	}

	return bRet;
}

BOOL CADO::GetFieldValue(CString szField, CString &szValue)
{
	if(m_bCmd)
	{
		return FALSE;
	}

	BOOL bRet=FALSE;
	CString szTemp("");
	_variant_t vTemp;

	if(NULL != m_pRecordset)
	{
//		vTemp = m_pRecordset->GetCollect(_variant_t(szField));
		szTemp.Format(_T("%s"), szField);
		vTemp = m_pRecordset->Fields->Item[_variant_t(szTemp)]->Value;

		szTemp = _T("");
		if((vTemp.vt != VT_NULL) && (vTemp.vt != VT_EMPTY))
		{
			szTemp = (LPCTSTR)(_bstr_t)vTemp;
		}

		bRet = TRUE;
	}

	szValue = szTemp;

	return bRet;
}

BOOL CADO::SetFieldValue(CString szField, CString szValue)
{
	if(m_bCmd)
	{
		return FALSE;
	}

	CString szTemp("");
	BOOL bRet= FALSE;

	szTemp.Format(_T("%s"), szField);

	if(NULL != m_pRecordset)
	{
//		m_pRecordset->PutCollect(_variant_t(szField), _variant_t(szValue));
		m_pRecordset->Fields->Item[_variant_t(szTemp)]->Value = _variant_t(szValue);

		bRet = TRUE;
	}

	return bRet;
}

BOOL CADO::GetBitmapValue(CString szField, HBITMAP &hBitmap)
{
	if(m_bCmd)
	{
		return FALSE;
	}

	CString szTemp("");
	BOOL bRet= FALSE;

	szTemp.Format(_T("%s"), szField);

	if(NULL != m_pRecordset)
	{
		int nDataSize = m_pRecordset->GetFields()->GetItem(_variant_t(szTemp))->ActualSize;

		if(nDataSize > 0)
		{
			_variant_t varBLOB;

			varBLOB = m_pRecordset->GetFields()->GetItem(_variant_t(szTemp))->GetChunk(nDataSize);

			if(varBLOB.vt == (VT_ARRAY | VT_UI1))
			{
				char *pBmpBuffer = NULL;
				char *pBuf = NULL;

				pBmpBuffer = new char[nDataSize+1];

				if(pBmpBuffer == NULL)
				{
					return FALSE;
				}

				SafeArrayAccessData(varBLOB.parray, (void **)&pBuf);
				//復(fù)制數(shù)據(jù)到緩沖區(qū)pBmpBuffer
				memcpy(pBmpBuffer, pBuf, nDataSize);
				SafeArrayUnaccessData(varBLOB.parray);
				//生成BITMAP對象
				hBitmap = BufferToHBITMAP(pBmpBuffer);

				delete []pBmpBuffer;

				if(hBitmap == NULL)
				{
					bRet = FALSE;
				}
				else
				{
					bRet = TRUE;
				}
			}
		}
	}

	return bRet;
}

char* CADO::GetImageValue(CString szField, int &nSize, int &nImageType)
{
	if(m_bCmd)
	{
		return NULL;
	}

	CString szTemp("");
	char *pImageData = NULL;
	char szImageType[12] = {0};

	szTemp.Format(_T("%s"), szField);

	if(NULL != m_pRecordset)
	{
		nSize = m_pRecordset->GetFields()->GetItem(_variant_t(szTemp))->ActualSize;

		if(nSize > 0)
		{
			_variant_t varBLOB;

			varBLOB = m_pRecordset->GetFields()->GetItem(_variant_t(szTemp))->GetChunk(nSize);

			if(varBLOB.vt == (VT_ARRAY | VT_UI1))
			{
				char *pBuf = NULL;

				pImageData = new char[nSize + 1];

				if(pImageData == NULL)
				{
					return NULL;
				}

				SafeArrayAccessData(varBLOB.parray, (void **)&pBuf);
				//復(fù)制數(shù)據(jù)到緩沖區(qū)pBmpBuffer
				memcpy(pImageData, pBuf, nSize);
				SafeArrayUnaccessData(varBLOB.parray);
			}
		}
	}

	memcpy(szImageType, pImageData, 11);

	if((szImageType[0] == 'B') && (szImageType[1] == 'M'))
	{//Bmp
		nImageType = 1;
	}
	else if((szImageType[6] == 'J') && (szImageType[7] == 'F')
		&& (szImageType[8] == 'I') && (szImageType[9] == 'F'))
	{//Jpg
		nImageType = 2;
	}
	else if((szImageType[0] == 'G') && (szImageType[1] == 'I')
		&& (szImageType[2] == 'F'))
	{//Gif
		nImageType = 3;
	}
	else
	{
		nImageType = 0;
	}

	return pImageData;
}

BOOL CADO::SetImageValue(CString szField, char *pImageBuff, const int nSize)
{
	if(m_bCmd || (pImageBuff == NULL))
	{
		return FALSE;
	}

	CString szTemp("");
	BOOL bRet = FALSE;

	szTemp.Format(_T("%s"), szField);

	if(NULL != m_pRecordset)
	{
		char *pBuf = pImageBuff;
		VARIANT	varBLOB;
		SAFEARRAY *pSa = NULL;
		SAFEARRAYBOUND rgsabound[1];
		
		if(pBuf != NULL)
		{    
			rgsabound[0].lLbound = 0;
			rgsabound[0].cElements = nSize;
			pSa = SafeArrayCreate(VT_UI1, 1, rgsabound);

			for(long i=0; i<nSize; i++)
			{
				SafeArrayPutElement(pSa, &i, pBuf++);
			}

			varBLOB.vt = VT_ARRAY | VT_UI1;
			varBLOB.parray = pSa;
			m_pRecordset->GetFields()->GetItem(_variant_t(szTemp))->AppendChunk(varBLOB);
		}

		bRet = TRUE;
	}

	return bRet;
}

BOOL CADO::ExeSQL(CString szSQL, BOOL bCmd)
{
	BOOL bRet=FALSE;

	m_szSQL = szSQL;
	m_nRecordCount = -1;
	m_bCmd = bCmd;

	if(m_szSQL.IsEmpty())
	{
		return FALSE;
	}

	if(m_pRecordset != NULL)
	{
		if(m_pRecordset->State)
		{
			m_pRecordset->Close();
		}

		m_pRecordset->Open(_variant_t(m_szSQL), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);

		if(!bCmd)
		{
			GetRecordCount();
		}

		bRet = TRUE;
	}

	return bRet;
}

BOOL CADO::AddNew()
{
	BOOL bRet = FALSE;
	HRESULT ret=S_FALSE;

	if(NULL != m_pRecordset)
	{
		ret = m_pRecordset->AddNew();
	}

	if(ret == S_OK)
	{
		bRet = TRUE;
	}

	return bRet;
}

BOOL CADO::Delete()
{
	BOOL bRet=FALSE;

	if(NULL != m_pRecordset)
	{
		m_pRecordset->Delete(adAffectCurrent);
		bRet = TRUE;
	}

	return bRet;
}

BOOL CADO::Update()
{
	BOOL bRet=FALSE;

	if(NULL != m_pRecordset)
	{
		m_pRecordset->Update();
		bRet = TRUE;
	}

	return bRet;
}

int CADO::GetRecordCount()
{
	if(m_bCmd)
	{
		return -1;
	}

	if(m_nRecordCount != -1)
	{
		return m_nRecordCount;
	}

	m_nRecordCount = 0;

	if(NULL != m_pRecordset)
	{
		if(!AdoEof())
		{
			MoveFirst();
		}

		while(!AdoEof())
		{
			m_nRecordCount++;
			MoveNext();
		}
	}

	return m_nRecordCount;
}

int CADO::GetFieldsCount()
{
	if(m_bCmd)
	{
		return -1;
	}

	long nCount=0;

	if(NULL != m_pRecordset)
	{
		nCount = m_pRecordset->GetFields()->GetCount();
	}

	return nCount;
}

BOOL CADO::MoveFirst()
{
	if(m_bCmd)
	{
		return FALSE;
	}

	BOOL bRet = FALSE;
	HRESULT ret=S_FALSE;

	if(NULL != m_pRecordset)
	{
		ret = m_pRecordset->MoveFirst();
	}

	if(ret == S_OK)
	{
		bRet = TRUE;
	}

	return bRet;
}

BOOL CADO::MoveLast()
{
	if(m_bCmd)
	{
		return FALSE;
	}

	BOOL bRet = FALSE;
	HRESULT ret=S_FALSE;

	if(NULL != m_pRecordset)
	{
		ret = m_pRecordset->MoveLast();
	}

	if(ret == S_OK)
	{
		bRet = TRUE;
	}

	return bRet;
}

BOOL CADO::MoveNext()
{
	if(m_bCmd)
	{
		return FALSE;
	}

	BOOL bRet = FALSE;
	HRESULT ret=S_FALSE;

	if(NULL != m_pRecordset)
	{
		ret = m_pRecordset->MoveNext();
	}

	if(ret == S_OK)
	{
		bRet = TRUE;
	}

	return bRet;
}

BOOL CADO::MovePrevious()
{
	if(m_bCmd)
	{
		return FALSE;
	}

	BOOL bRet = FALSE;
	HRESULT ret=S_FALSE;

	if(NULL != m_pRecordset)
	{
		ret = m_pRecordset->MovePrevious();
	}

	if(ret == S_OK)
	{
		bRet = TRUE;
	}

	return bRet;
}

BOOL CADO::Move(int nNumRecords)
{
	if(m_bCmd)
	{
		return FALSE;
	}

	BOOL bRet = FALSE;
	HRESULT ret=S_FALSE;

	if(NULL != m_pRecordset)
	{
		ret = m_pRecordset->Move(nNumRecords);
	}

	if(ret == S_OK)
	{
		bRet = TRUE;
	}
	return bRet;
}


BOOL CADO::AdoEof()
{
	BOOL bRet = TRUE;
	HRESULT ret=1;

	if(NULL != m_pRecordset)
	{
		ret = m_pRecordset->adoEOF;
	}

	if(ret == 0)
	{
		bRet = FALSE;
	}

	return bRet;
}

BOOL CADO::AdoBof()
{
	BOOL bRet=TRUE;
	HRESULT ret=1;

	if(NULL != m_pRecordset)
	{
		ret = m_pRecordset->adoBOF;
	}

	if(ret == 0)
	{
		bRet = FALSE;
	}

	return bRet;
}

BOOL CADO::SetConnectionString(CString szConnectionString)
{
	m_szConnectionString = szConnectionString;

	return TRUE;
}

CString CADO::GetConnectionString()
{
	return m_szConnectionString;
}

BOOL CADO::SetUdlFileName(CString szUdlFileName)
{
	m_szUdlFileName = szUdlFileName;

	return TRUE;
}

CString CADO::GetUdlFileName()
{
	return m_szUdlFileName;
}

BOOL CADO::SetSQLString(CString szSQL)
{
	m_szSQL = szSQL;

	return TRUE;
}

CString CADO::GetSQLString()
{
	return m_szSQL;
}

HBITMAP CADO::BufferToHBITMAP(char *pBmpBuff)
{
	HBITMAP				hBmp;
	LPSTR				hDIB,lpBuffer = pBmpBuff;
	LPVOID				lpDIBBits;
	BITMAPFILEHEADER	bmfHeader;
	DWORD				bmfHeaderLen;

	bmfHeaderLen = sizeof(bmfHeader);
	strncpy((LPSTR)&bmfHeader, (LPSTR)lpBuffer, bmfHeaderLen);
	
	if(bmfHeader.bfType != ((WORD) ('M' << 8) | 'B'))
	{
		return NULL;
	}

	hDIB = lpBuffer + bmfHeaderLen;
	BITMAPINFOHEADER &bmiHeader = *(LPBITMAPINFOHEADER)hDIB;
	BITMAPINFO &bmInfo = *(LPBITMAPINFO)hDIB ;
	
	int nColors = bmiHeader.biClrUsed ? bmiHeader.biClrUsed : 1 << bmiHeader.biBitCount;

	if(bmInfo.bmiHeader.biBitCount > 8)
	{
		lpDIBBits = (LPVOID)((LPDWORD)(bmInfo.bmiColors + bmInfo.bmiHeader.biClrUsed) + 
			((bmInfo.bmiHeader.biCompression == BI_BITFIELDS) ? 3 : 0));
	}
	else
	{
		lpDIBBits = (LPVOID)(bmInfo.bmiColors + nColors);
	}

	HDC hDC = ::GetDC(NULL);

	if(hDC != NULL)
	{
		hBmp = CreateDIBitmap(hDC, &bmiHeader, CBM_INIT, lpDIBBits, &bmInfo, DIB_RGB_COLORS);
	}
	
	return hBmp;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产激情偷乱视频一区二区三区| 91麻豆精品国产自产在线 | 国产98色在线|日韩| 久久激情综合网| 久久66热偷产精品| 国产一区二区三区在线看麻豆| 蜜桃精品在线观看| 毛片av一区二区三区| 久久99国产精品久久| 狠狠色综合播放一区二区| 精品系列免费在线观看| 久久99国内精品| 国产精品1区2区| 国产精品91一区二区| 播五月开心婷婷综合| 色综合天天综合在线视频| 欧日韩精品视频| 欧美日本一区二区三区| 欧美一区午夜视频在线观看| 精品国产乱码久久久久久图片| 久久久久久亚洲综合| 中文字幕日韩欧美一区二区三区| 国产精品进线69影院| 一区二区免费在线| 欧美一区二区三区视频在线 | 欧美精品一二三四| 成人一区在线看| 国产又粗又猛又爽又黄91精品| 一区二区三区中文字幕在线观看| 欧美国产精品劲爆| 国产欧美精品一区| 在线观看av一区二区| 在线综合+亚洲+欧美中文字幕| 日韩欧美国产麻豆| 欧美国产精品v| 亚洲自拍与偷拍| 久久精品免费观看| 色综合天天综合色综合av| 欧美日韩国产综合一区二区三区| 日韩欧美国产一区在线观看| 欧美经典一区二区三区| 一区二区不卡在线播放| 免费不卡在线观看| 成人高清视频在线| 欧美日韩一区二区三区四区五区| wwww国产精品欧美| 一区二区三区视频在线看| 韩日av一区二区| 色悠久久久久综合欧美99| 日韩精品专区在线| 亚洲精品免费在线| 精品亚洲porn| 在线日韩国产精品| 久久精子c满五个校花| 亚洲高清中文字幕| 成人久久视频在线观看| 欧美一区二区三区四区久久| 综合久久久久久| 久久se这里有精品| 欧美视频一区二区| 国产精品久久久久久久第一福利 | 亚洲国产人成综合网站| 成人夜色视频网站在线观看| 欧美精品视频www在线观看| 国产精品的网站| 精品无人区卡一卡二卡三乱码免费卡| 色婷婷亚洲综合| 国产人伦精品一区二区| 免费三级欧美电影| 欧美色爱综合网| 亚洲视频中文字幕| 国产激情视频一区二区在线观看| 制服.丝袜.亚洲.中文.综合| 亚洲女与黑人做爰| 国产成人av福利| 日韩午夜在线播放| 舔着乳尖日韩一区| 色哟哟精品一区| 国产精品美女www爽爽爽| 久久99精品国产麻豆婷婷| 欧美日本一道本在线视频| 自拍偷拍国产亚洲| 国产成人av福利| wwww国产精品欧美| 国模一区二区三区白浆 | 香蕉影视欧美成人| 在线视频国产一区| 一区二区在线免费观看| 成人h动漫精品一区二区| 国产日韩高清在线| 国产高清精品在线| 国产亚洲欧美色| 黄一区二区三区| 日韩欧美在线123| 青青草视频一区| 制服丝袜国产精品| 丝袜国产日韩另类美女| 精品视频一区 二区 三区| 亚洲一区二区在线观看视频| 在线亚洲+欧美+日本专区| 亚洲欧美精品午睡沙发| 色婷婷久久久综合中文字幕| 亚洲精品少妇30p| 在线视频亚洲一区| 午夜视频一区二区三区| 欧美午夜一区二区| 亚洲大片精品永久免费| 欧美精品一二三区| 首页国产欧美日韩丝袜| 欧美一区二区视频网站| 久久se这里有精品| 欧美精品一区二区久久久| 国内精品自线一区二区三区视频| 久久综合久久综合亚洲| 国产成人精品免费网站| 国产精品青草久久| 91在线视频播放地址| 亚洲激情在线激情| 69精品人人人人| 久久99精品久久久| 国产欧美视频一区二区| 99久久国产综合色|国产精品| 一区二区三区不卡视频| 制服丝袜亚洲色图| 国产乱码精品一区二区三区忘忧草| 中文字幕不卡的av| 91国模大尺度私拍在线视频| 丝袜a∨在线一区二区三区不卡| 欧美zozozo| 国产91富婆露脸刺激对白| 亚洲欧洲综合另类在线| 欧美日韩一级二级三级| 经典三级视频一区| 中文子幕无线码一区tr| 色哟哟日韩精品| 麻豆精品新av中文字幕| 日本一二三不卡| 欧美日韩中文字幕一区| 激情欧美一区二区| 亚洲欧美日韩国产综合| 777精品伊人久久久久大香线蕉| 国产麻豆一精品一av一免费| 亚洲三级在线免费观看| 欧美一区二区女人| 成人免费观看男女羞羞视频| 亚洲国产日韩精品| 国产无一区二区| 777xxx欧美| 成人福利在线看| 亚洲成国产人片在线观看| 国产欧美日韩麻豆91| 欧美精品精品一区| 国产999精品久久久久久绿帽| 亚洲成人激情av| 国产午夜精品久久| 91精品国产入口在线| 99久久国产综合精品女不卡| 久久国产精品72免费观看| 亚洲天堂免费在线观看视频| 日韩欧美的一区| 色爱区综合激月婷婷| 国产夫妻精品视频| 日韩av中文字幕一区二区三区| 国产欧美一区二区三区沐欲| 欧美一区二区视频网站| 一本到高清视频免费精品| 国产在线精品免费| 亚洲va中文字幕| 国产精品久久久久三级| 精品国产污污免费网站入口| 欧美性一二三区| 国产69精品一区二区亚洲孕妇| 日本视频在线一区| 亚洲综合色区另类av| 国产精品麻豆久久久| 久久综合色婷婷| 91精品国产色综合久久久蜜香臀| 日本大香伊一区二区三区| 成人精品视频一区二区三区尤物| 九一九一国产精品| 日韩国产精品大片| 亚洲精品一二三四区| 日本一区二区成人| 久久久久久9999| 2欧美一区二区三区在线观看视频| 欧美色成人综合| 在线免费观看日本欧美| 成人国产精品免费观看视频| 韩国毛片一区二区三区| 麻豆91免费观看| 天天av天天翘天天综合网| 亚洲va天堂va国产va久| 夜夜嗨av一区二区三区网页| 成人欧美一区二区三区1314| 国产精品水嫩水嫩| 国产精品三级电影| 中文字幕精品一区二区精品绿巨人| 久久亚洲一区二区三区明星换脸| 亚洲精品一线二线三线无人区| 欧美成人三级电影在线|