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

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

?? ado2.cpp

?? 我從網(wǎng)上下載的一個關(guān)于DataGrid的程序。
?? CPP
字號:
//
//  MODULE: Ado2.cpp
//
//	AUTHOR: Carlos Antollini 
//
//  mailto: cantollini@hotmail.com
//
//	Date: 07/02/2003
//
//	Version 2.10
//
#include "StdAfx.h" //不添加則會出現(xiàn):fatal error C1010: unexpected end of file ...
#include "ado2.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_strErrorDescription = (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::OpenSchema(int nSchema, LPCTSTR SchemaID)
{
	try
	{
		_variant_t vtSchemaID = vtMissing;

		if(strlen(SchemaID) != 0)
			vtSchemaID = SchemaID;
			
		m_pRecordset = m_pConnection->OpenSchema((enum SchemaEnum)nSchema, vtMissing, vtSchemaID);
		return TRUE;
	}
	catch(_com_error &e)
	{
		dump_com_error(e);
		return FALSE;
	}
}

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一区二区三区免费野_久草精品视频
337p亚洲精品色噜噜噜| 久久天天做天天爱综合色| 欧美变态tickling挠脚心| 国产精品久久久99| 黄色日韩网站视频| 欧美久久久久久久久中文字幕| 久久综合精品国产一区二区三区| 一区二区三区.www| 国产精品66部| 欧美xxxx在线观看| 午夜天堂影视香蕉久久| 99re这里都是精品| 国产日韩v精品一区二区| 蜜桃一区二区三区四区| 91久久精品一区二区二区| 亚洲国产精品成人综合 | 男女视频一区二区| 91福利在线导航| 免费看欧美美女黄的网站| 色婷婷一区二区三区四区| 国产欧美一区二区精品仙草咪| 青青草97国产精品免费观看| 欧美亚洲日本一区| 亚洲综合免费观看高清完整版| 不卡的电影网站| 中文幕一区二区三区久久蜜桃| 国内精品写真在线观看| 欧美一区二区三区四区视频| 亚洲国产精品视频| 欧美三级日韩在线| 亚洲成人黄色小说| 欧美午夜一区二区三区免费大片| 亚洲三级在线观看| 91亚洲精华国产精华精华液| 中文字幕制服丝袜一区二区三区| 大陆成人av片| 中文字幕一区二区三区不卡| 99久久免费视频.com| √…a在线天堂一区| caoporen国产精品视频| 最新不卡av在线| 色综合久久99| 性感美女久久精品| 日韩一区二区视频在线观看| 日本中文一区二区三区| 日韩免费观看高清完整版| 蜜桃视频一区二区三区| 久久伊人蜜桃av一区二区| 国产成人h网站| 亚洲天堂网中文字| 欧美日韩一区二区三区免费看 | 天堂成人国产精品一区| 欧美日韩精品一区二区三区蜜桃 | 久久久久久99精品| 成人午夜视频网站| 亚洲一二三四区不卡| 欧美一区中文字幕| 国产成人av电影免费在线观看| 国产精品看片你懂得| 欧美三区在线视频| 另类的小说在线视频另类成人小视频在线 | 国产日产精品一区| 99久久精品费精品国产一区二区| 亚洲综合免费观看高清在线观看| 在线综合视频播放| 成人免费毛片高清视频| 亚洲一区二区精品视频| 欧美tk丨vk视频| av亚洲产国偷v产偷v自拍| 五月开心婷婷久久| 欧美极品少妇xxxxⅹ高跟鞋 | 国产精品午夜电影| 在线观看欧美精品| 国内久久精品视频| 亚洲自拍都市欧美小说| 亚洲午夜视频在线观看| 日韩欧美一卡二卡| 色一区在线观看| 国内精品嫩模私拍在线| 亚洲精品日产精品乱码不卡| 欧美成人猛片aaaaaaa| 99精品视频一区二区三区| 蜜桃视频在线观看一区二区| 日韩伦理av电影| 精品成人a区在线观看| 欧美无人高清视频在线观看| 国产成人精品1024| 青青草精品视频| 一区二区三区不卡在线观看| 久久九九全国免费| 91精品国产综合久久香蕉麻豆| av一二三不卡影片| 国产一区久久久| 日本在线不卡视频| 亚洲国产精品影院| 综合欧美一区二区三区| 久久青草国产手机看片福利盒子| 欧美亚州韩日在线看免费版国语版| 国产精品 欧美精品| 蜜桃久久久久久| 日韩精品一级二级 | 国产精品日韩成人| 久久久亚洲国产美女国产盗摄 | 无吗不卡中文字幕| 樱花影视一区二区| 中文字幕在线播放不卡一区| 久久免费美女视频| 久久香蕉国产线看观看99| 日韩一区二区三区观看| 欧美日韩电影在线播放| 欧美午夜片在线看| 欧美视频一区在线| 欧洲生活片亚洲生活在线观看| 国产成人精品www牛牛影视| 国产乱码精品一品二品| 国产在线视频精品一区| 狠狠色综合播放一区二区| 久久精品国产精品亚洲综合| 麻豆精品蜜桃视频网站| 喷水一区二区三区| 日本亚洲欧美天堂免费| 美女视频网站久久| 精品一区二区三区欧美| 黄网站免费久久| 国产高清久久久久| 成人久久18免费网站麻豆| www.久久精品| 91成人在线精品| 在线不卡的av| 精品成人在线观看| 国产欧美日韩麻豆91| 国产精品视频一二三区| 亚洲免费观看高清完整版在线观看 | 粉嫩嫩av羞羞动漫久久久| 大美女一区二区三区| 色一区在线观看| 91精品国产福利| 国产亚洲美州欧州综合国| 国产精品天干天干在线综合| 亚洲免费在线观看视频| 天天操天天色综合| 国产一区二区视频在线| 97久久人人超碰| 欧美日韩亚洲丝袜制服| 日韩欧美国产一区二区三区| 久久色.com| 一区二区在线看| 免费观看成人av| 99久久精品国产导航| 欧美日韩一区二区三区在线 | 极品少妇一区二区三区精品视频| 国产91在线观看丝袜| 在线观看网站黄不卡| 69久久夜色精品国产69蝌蚪网| 久久婷婷国产综合国色天香| 亚洲欧美一区二区三区国产精品| 亚洲成在人线免费| 国产成人啪午夜精品网站男同| 欧美在线你懂得| 国产婷婷精品av在线| 亚洲一区成人在线| 成人免费三级在线| 亚洲欧美日韩国产另类专区| 日韩黄色免费网站| 99久久伊人久久99| 日韩精品中文字幕在线一区| 亚洲欧洲制服丝袜| 国产精品自拍三区| 这里只有精品视频在线观看| 国产精品久线观看视频| 麻豆极品一区二区三区| 色欲综合视频天天天| 欧美激情一区二区三区四区| 日本一区中文字幕| 色猫猫国产区一区二在线视频| 久久这里只精品最新地址| 天堂精品中文字幕在线| 91免费在线播放| 国产日韩欧美高清| 久久99久久99| 91精品国产综合久久香蕉麻豆| 一区二区三区中文字幕| 成人国产一区二区三区精品| 久久综合狠狠综合久久综合88 | 国产一区啦啦啦在线观看| 欧美日韩电影在线| 艳妇臀荡乳欲伦亚洲一区| 不卡在线视频中文字幕| 国产欧美日韩精品在线| 国产精品综合二区| 欧美成人官网二区| 老司机免费视频一区二区| 欧美日本韩国一区二区三区视频| 亚洲精选视频在线| 91麻豆免费看片| 亚洲人成网站色在线观看| 99热精品国产| 成人免费在线播放视频| av在线播放成人| 亚洲精品免费一二三区|