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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ado.cpp

?? 數(shù)據庫操作-ADO篇
?? CPP
字號:
//
//  MODULE: Ado.cpp
//
//	AUTHOR: Carlos Antollini 
//
//  mailto: cantollini@hotmail.com
//
//	Date: 11/12/2002
//
//	Version 2.07
//

#include "ado.h"

#define ChunkSize 100
///////////////////////////////////////////////////////
//
// CADODatabase Class
//

DWORD CADODatabase::GetRecordCount(_RecordsetPtr m_pRs)
{
	DWORD numRows = 0;
	
	numRows = m_pRs->GetRecordCount();

	if(numRows == -1)
	{
		if(m_pRs->EndOfFile != VARIANT_TRUE)
			m_pRs->MoveFirst();

		while(m_pRs->EndOfFile != VARIANT_TRUE)
		{
			numRows++;
			m_pRs->MoveNext();
		}
		if(numRows > 0)
			m_pRs->MoveFirst();
	}
	return numRows;
}

BOOL CADODatabase::Open(LPCTSTR lpstrConnection, LPCTSTR lpstrUserID, LPCTSTR lpstrPassword)
{
	HRESULT hr = S_OK;

	if(IsOpen())
		Close();

	if(strcmp(lpstrConnection, _T("")) != 0)
		m_strConnection = lpstrConnection;

	ASSERT(!m_strConnection.IsEmpty());

	try
	{
		if(m_nConnectionTimeout != 0)
			m_pConnection->PutConnectionTimeout(m_nConnectionTimeout);
		hr = m_pConnection->Open(_bstr_t(m_strConnection), _bstr_t(lpstrUserID), _bstr_t(lpstrPassword), NULL);
		return hr == S_OK;
	}
	catch(_com_error &e)
	{
		dump_com_error(e);
		return FALSE;
	}
	
}

void CADODatabase::dump_com_error(_com_error &e)
{
	CString ErrorStr;
	
	
	_bstr_t bstrSource(e.Source());
	_bstr_t bstrDescription(e.Description());
	ErrorStr.Format( "CADODataBase Error\n\tCode = %08lx\n\tCode meaning = %s\n\tSource = %s\n\tDescription = %s\n",
		e.Error(), e.ErrorMessage(), (LPCSTR)bstrSource, (LPCSTR)bstrDescription );
	m_strLastError = _T("Connection String = " + GetConnectionString() + '\n' + ErrorStr);
	m_dwLastError = e.Error(); 
	#ifdef _DEBUG
		AfxMessageBox( ErrorStr, MB_OK | MB_ICONERROR );
	#endif
}

BOOL CADODatabase::IsOpen()
{
	if(m_pConnection )
		return m_pConnection->GetState() != adStateClosed;
	return FALSE;
}

void CADODatabase::Close()
{
	if(IsOpen())
		m_pConnection->Close();
}


///////////////////////////////////////////////////////
//
// CADORecordset Class
//

CADORecordset::CADORecordset()
{
	m_pRecordset = NULL;
	m_pCmd = NULL;
	m_strQuery = _T("");
	m_strLastError = _T("");
	m_dwLastError = 0;
	m_pRecBinding = NULL;
	m_pRecordset.CreateInstance(__uuidof(Recordset));
	m_pCmd.CreateInstance(__uuidof(Command));
	m_nEditStatus = CADORecordset::dbEditNone;
	m_nSearchDirection = CADORecordset::searchForward;
}

CADORecordset::CADORecordset(CADODatabase* pAdoDatabase)
{
	m_pRecordset = NULL;
	m_pCmd = NULL;
	m_strQuery = _T("");
	m_strLastError = _T("");
	m_dwLastError = 0;
	m_pRecBinding = NULL;
	m_pRecordset.CreateInstance(__uuidof(Recordset));
	m_pCmd.CreateInstance(__uuidof(Command));
	m_nEditStatus = CADORecordset::dbEditNone;
	m_nSearchDirection = CADORecordset::searchForward;

	m_pConnection = pAdoDatabase->GetActiveConnection();
}

BOOL CADORecordset::Open(_ConnectionPtr mpdb, LPCTSTR lpstrExec, int nOption)
{	
	Close();
	
	if(strcmp(lpstrExec, _T("")) != 0)
		m_strQuery = lpstrExec;

	ASSERT(!m_strQuery.IsEmpty());

	if(m_pConnection == NULL)
		m_pConnection = mpdb;

	m_strQuery.TrimLeft();
	BOOL bIsSelect = m_strQuery.Mid(0, strlen("Select ")).CompareNoCase("select ") == 0 && nOption == openUnknown;

	try
	{
		m_pRecordset->CursorType = adOpenStatic;
		m_pRecordset->CursorLocation = adUseClient;
		if(bIsSelect || nOption == openQuery || nOption == openUnknown)
			m_pRecordset->Open((LPCSTR)m_strQuery, _variant_t((IDispatch*)mpdb, TRUE), 
							adOpenStatic, adLockOptimistic, adCmdUnknown);
		else if(nOption == openTable)
			m_pRecordset->Open((LPCSTR)m_strQuery, _variant_t((IDispatch*)mpdb, TRUE), 
							adOpenKeyset, adLockOptimistic, adCmdTable);
		else if(nOption == openStoredProc)
		{
			m_pCmd->ActiveConnection = mpdb;
			m_pCmd->CommandText = _bstr_t(m_strQuery);
			m_pCmd->CommandType = adCmdStoredProc;
			m_pConnection->CursorLocation = adUseClient;
			
			m_pRecordset = m_pCmd->Execute(NULL, NULL, adCmdText);
		}
		else
		{
			TRACE( "Unknown parameter. %d", nOption);
			return FALSE;
		}
	}
	catch(_com_error &e)
	{
		dump_com_error(e);
		return FALSE;
	}

	return m_pRecordset != NULL;
}

BOOL CADORecordset::Open(LPCTSTR lpstrExec, int nOption)
{
	ASSERT(m_pConnection != NULL);
	ASSERT(m_pConnection->GetState() != adStateClosed);
	return Open(m_pConnection, lpstrExec, nOption);
}

BOOL CADORecordset::Requery()
{
	if(IsOpen())
	{
		try
		{
			m_pRecordset->Requery(adExecuteRecord);
		}
		catch(_com_error &e)
		{
			dump_com_error(e);
			return FALSE;
		}
	}
	return TRUE;
}


BOOL CADORecordset::GetFieldValue(LPCTSTR lpFieldName, double& dbValue)
{	
	double val = (double)NULL;
	_variant_t vtFld;
	
	try
	{
		vtFld = m_pRecordset->Fields->GetItem(lpFieldName)->Value;
		switch(vtFld.vt)
		{
		case VT_R4:
			val = vtFld.fltVal;
			break;
		case VT_R8:
			val = vtFld.dblVal;
			break;
		case VT_DECIMAL:
			//Corrected by Jos

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产老妇另类xxxxx| 久久精品亚洲精品国产欧美kt∨| 国产精品成人一区二区三区夜夜夜| 国产激情视频一区二区在线观看 | 日一区二区三区| 色嗨嗨av一区二区三区| 一区二区三区在线视频免费观看| 91麻豆国产精品久久| 亚洲综合免费观看高清在线观看| 欧美天堂一区二区三区| 日日摸夜夜添夜夜添国产精品| 日韩亚洲欧美在线观看| 国产成人在线免费| 亚洲私人黄色宅男| 欧美裸体一区二区三区| 国产一区二区三区四| 国产精品黄色在线观看| 欧美日韩免费观看一区三区| 久久精品国产一区二区三区免费看| 国产亚洲精品aa| 91视频你懂的| 奇米一区二区三区av| 国产三级欧美三级| 欧美系列在线观看| 国产一区二区三区国产| 亚洲精品第1页| 日韩精品一区二区在线| 99久久99久久精品国产片果冻| 亚洲h在线观看| 欧美色男人天堂| 极品少妇xxxx偷拍精品少妇| 欧美国产激情一区二区三区蜜月| 色噜噜狠狠一区二区三区果冻| 日韩不卡一二三区| 国产精品亲子乱子伦xxxx裸| 欧美在线免费观看视频| 国产高清久久久久| 亚洲1区2区3区视频| 国产欧美精品一区二区色综合| 欧美色综合久久| 成人午夜在线播放| 秋霞午夜av一区二区三区| 国产精品夫妻自拍| 精品奇米国产一区二区三区| 欧美性猛交xxxx乱大交退制版 | 久久免费看少妇高潮| 91福利国产成人精品照片| 国产精品综合视频| 日本一不卡视频| 亚洲第一福利一区| 国产精品美女久久久久久久久| 欧美一区二区三区不卡| 色婷婷综合视频在线观看| 国产福利视频一区二区三区| 日日夜夜精品视频天天综合网| 亚洲色图都市小说| 亚洲国产精品成人综合| 欧美成人伊人久久综合网| 欧美日韩精品一区二区三区四区 | 日韩高清在线观看| 亚洲精品国产第一综合99久久 | 色婷婷av一区二区三区gif| 国产一区二区三区在线观看精品| 丝袜亚洲精品中文字幕一区| 亚洲美腿欧美偷拍| 国产精品视频观看| 国产婷婷色一区二区三区在线| 精品黑人一区二区三区久久 | 久久精品国产久精国产| 日韩电影一区二区三区| 午夜精品一区二区三区电影天堂 | 久久人人97超碰com| 91精品国产色综合久久不卡蜜臀| 在线观看国产91| 在线观看日韩国产| 色狠狠色狠狠综合| 欧美特级限制片免费在线观看| 色吊一区二区三区| 在线精品视频免费播放| 在线观看亚洲精品| 欧美亚洲精品一区| 欧美老女人第四色| 91精品在线观看入口| 日韩亚洲欧美中文三级| 精品国产乱码久久久久久夜甘婷婷| 精品日产卡一卡二卡麻豆| 久久综合九色综合欧美就去吻| 精品国产污网站| 国产午夜精品一区二区| 国产精品欧美一级免费| 亚洲女人****多毛耸耸8| 亚洲激情图片qvod| 午夜a成v人精品| 麻豆精品国产传媒mv男同| 国产一区二区三区不卡在线观看| 国产乱对白刺激视频不卡| aaa国产一区| 欧美吻胸吃奶大尺度电影| 欧美一级在线免费| 久久亚洲捆绑美女| 中文字幕日韩欧美一区二区三区| 一区二区在线看| 青青青爽久久午夜综合久久午夜| 狠狠色狠狠色综合系列| 成人精品视频网站| 欧美美女一区二区在线观看| 日韩欧美中文字幕制服| 中文字幕的久久| 亚洲777理论| 成人高清免费观看| 欧美亚洲综合网| 国产视频视频一区| 亚洲在线中文字幕| 国产在线精品免费| 色一情一伦一子一伦一区| 欧美一区二区三级| 国产精品麻豆网站| 午夜精品福利一区二区三区av| 国内精品伊人久久久久av一坑 | 亚洲一区二区三区视频在线| 欧美aaaaaa午夜精品| 国产iv一区二区三区| 欧美系列一区二区| 国产精品日产欧美久久久久| 偷拍自拍另类欧美| 成人av高清在线| 日韩精品最新网址| 亚洲乱码日产精品bd| 精品亚洲免费视频| 欧美日韩一本到| 国产精品乱子久久久久| 免费亚洲电影在线| 91久久精品日日躁夜夜躁欧美| 亚洲精品一区在线观看| 亚洲高清不卡在线| caoporn国产精品| 精品国偷自产国产一区| 亚洲福利一区二区三区| www.色综合.com| 久久综合999| 日本午夜一区二区| 欧美亚洲自拍偷拍| 成人免费在线观看入口| 国产九九视频一区二区三区| 91精品国产综合久久久蜜臀图片| 亚洲男人的天堂网| 成人黄色a**站在线观看| xfplay精品久久| 美女视频黄 久久| 91精品国产综合久久福利软件| 亚洲综合免费观看高清完整版在线| 国产宾馆实践打屁股91| 亚洲精品在线免费播放| 美女视频黄频大全不卡视频在线播放| 欧美在线视频你懂得| 国产精品久久二区二区| 国产不卡在线视频| 久久婷婷成人综合色| 麻豆国产欧美日韩综合精品二区| 欧美精品日韩一本| 亚洲午夜精品网| 在线精品国精品国产尤物884a| 综合欧美一区二区三区| jvid福利写真一区二区三区| 国产日韩欧美不卡在线| 国产一区二区福利| 久久一二三国产| 国产真实乱对白精彩久久| 精品久久久久久无| 国产一区二区在线影院| 久久色.com| 国产**成人网毛片九色| 欧美激情一区在线| 99久久久无码国产精品| 亚洲精品国产一区二区三区四区在线| 91污在线观看| 亚洲一区免费视频| 久久99精品久久久久婷婷| 中国色在线观看另类| 久草热8精品视频在线观看| 日韩视频在线你懂得| 中文字幕日本乱码精品影院| 另类人妖一区二区av| 日韩免费高清av| 久久99久久精品| 久久久99精品免费观看不卡| 国产aⅴ综合色| 日韩美女精品在线| 欧美亚洲自拍偷拍| 蜜桃视频一区二区三区在线观看| 欧美不卡一区二区三区| 东方aⅴ免费观看久久av| 成人欧美一区二区三区黑人麻豆| 91成人在线免费观看| 美女www一区二区| 国产欧美日韩精品在线| 色呦呦一区二区三区| 蜜桃视频免费观看一区| 亚洲国产成人午夜在线一区| 色婷婷久久久久swag精品|