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

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

?? ado.cpp

?? VC++ 6.0開發。之中打印部分可能對您有值得參考的地方。其他的部分還不是很完善
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
}

/*========================================================================
	Name:	關閉與數據源的連接.
	-----------------------------------------------------
	Remarks: 使用 Close 方法可關閉 Connection 對象以便釋放所有關聯的系統資源. 
==========================================================================*/
void CAdoConnection::Close()
{
	try
	{
		if (m_pConnection != NULL && IsOpen()) 
		{
			m_pConnection->Close();
		}
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: 關閉數據庫發生異常. 錯誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
	} 
}

/*========================================================================
	Name:	關閉連接并釋放對象.
	-----------------------------------------------------
	Remarks: 關閉連接并釋放connection對象.
==========================================================================*/
void CAdoConnection::Release()
{
	if (IsOpen()) Close();
	m_pConnection.Release();
}

/*========================================================================
	Name:		執行指定的查詢、SQL 語句、存儲過程等.
    ----------------------------------------------------------
	Remarks:	請參考 CAdoRecordSet 類的Open方法. 返回的 Recordset 對象始
			終為只讀、僅向前的游標.
==========================================================================*/
_RecordsetPtr CAdoConnection::Execute(LPCTSTR lpszSQL, long lOptions)
{
	ASSERT(m_pConnection != NULL);
	ASSERT(AfxIsValidString(lpszSQL));

	try
	{
		return m_pConnection->Execute(_bstr_t(lpszSQL), NULL, lOptions);
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: Execute 方法發生異常. 錯誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		return FALSE;
	} 
	return FALSE;
}

/*========================================================================
	Remarks:	請參考 CAdoRecordSet 類 Cancel 方法.
==========================================================================*/
BOOL CAdoConnection::Cancel()
{
	ASSERT(m_pConnection != NULL);
	try
	{
		return m_pConnection->Cancel();
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: Cancel 方法發生異常. 錯誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		return FALSE;
	} 
	return FALSE;
}

/*========================================================================
	Name:	取得最后發生的錯誤信息.
==========================================================================*/
CString CAdoConnection::GetLastErrorText()
{
	ASSERT(m_pConnection != NULL);
	CString strErrors = "";
	try
	{
		if (m_pConnection != NULL)
		{
			ErrorsPtr pErrors = m_pConnection->Errors;
			CString strError;
			for (long n = 0; n < pErrors->Count; n++)
			{
				ErrorPtr pError = pErrors->GetItem(n);
				strError.Format(_T("Description: %s\r\nState: %s, Native: %d, Source: %s\r\n"),
								(LPCTSTR)pError->Description,
								(LPCTSTR)pError->SQLState,
										 pError->NativeError,
								(LPCTSTR)pError->Source);
				strErrors += strError;
			}
		}
		return strErrors;
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: GetLastError 方法發生異常. 錯誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		return strErrors;
	} 
	return strErrors;
}

ErrorsPtr CAdoConnection::GetErrors()
{
	ASSERT(m_pConnection != NULL);
	try
	{
		if (m_pConnection != NULL)
		{
			return m_pConnection->Errors;
		}
		return NULL;
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: GetErrors 方法發生異常. 錯誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		return NULL;
	} 
	return NULL;
}

ErrorPtr CAdoConnection::GetError(long index)
{
	ASSERT(m_pConnection != NULL);
	try
	{
		if (m_pConnection != NULL)
		{
			ErrorsPtr pErrors =  m_pConnection->Errors;
			if (index >= 0 && index < pErrors->Count)
			{
				return pErrors->GetItem(_variant_t(index));
			}
		}
		return NULL;
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: GetError 方法發生異常. 錯誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		return NULL;
	} 
	return NULL;
}

/*========================================================================
	Name:		取得連接時間.
==========================================================================*/
long CAdoConnection::GetConnectTimeOut()
{
	ASSERT(m_pConnection != NULL);
	try
	{
		return m_pConnection->GetConnectionTimeout();
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: GetConnectTimeOut 方法發生異常. 錯誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		return -1;
	} 
	return -1;
}

/*========================================================================
	Name:		設置連接時間.
==========================================================================*/
BOOL CAdoConnection::SetConnectTimeOut(long lTime)
{
	ASSERT(m_pConnection != NULL);
	try
	{
		m_pConnection->PutConnectionTimeout(lTime);
		return TRUE;
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: SetConnectTimeOut 方法發生異常. 錯誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		return FALSE;
	} 
}

/*========================================================================
	Name:		取得默認數據庫的名稱.
==========================================================================*/
CString CAdoConnection::GetDefaultDatabase()
{
	ASSERT(m_pConnection != NULL);
	try
	{
		return CString(LPCTSTR(_bstr_t(m_pConnection->GetDefaultDatabase())));
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: GetDefaultDatabase 方法發生異常. 錯誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		return CString(_T(""));
	} 
}

/*========================================================================
	Name:		取得 Connection 對象提供者的名稱.
==========================================================================*/
CString CAdoConnection::GetProviderName()
{
	ASSERT(m_pConnection != NULL);
	try
	{
		return CString(LPCTSTR(_bstr_t(m_pConnection->GetProvider())));
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: GetProviderName 方法發生異常. 錯誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		return CString(_T(""));
	} 
}

/*========================================================================
	Name:		取得 ADO 的版本號
==========================================================================*/
CString CAdoConnection::GetVersion()
{
	ASSERT(m_pConnection != NULL);
	try
	{
		return CString(LPCTSTR(_bstr_t(m_pConnection->GetVersion())));
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: GetVersion 方法發生異常. 錯誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		return CString(_T(""));
	} 
}

/*========================================================================
	Name:		取得對象的狀態(同 Recordset 對象的 GetState 方法).
	-----------------------------------------------------
	returns:	返回下列常量之一的長整型值.
		[常量]				[說明] 
		----------------------------------
		adStateClosed		指示對象是關閉的. 
		adStateOpen			指示對象是打開的. 
	-----------------------------------------------------
	Remarks:		可以隨時使用 State 屬性取得指定對象的當前狀態.
==========================================================================*/
long CAdoConnection::GetState()
{
	ASSERT(m_pConnection != NULL);
	try
	{
		return m_pConnection->GetState();
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: GetState 發生異常. 錯誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		return -1;
	} 
	return -1;
}

/*========================================================================
	Name:	檢測連接對象是否為打開狀態.
==========================================================================*/
BOOL CAdoConnection::IsOpen()
{
	try
	{
		return (m_pConnection != NULL && (m_pConnection->State & adStateOpen));
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: IsOpen 方法發生異常. 錯誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		return FALSE;
	} 
	return FALSE;
}

/*========================================================================
	Name:		取得在 Connection 對象中修改數據的可用權限.
    ----------------------------------------------------------
	returns:	返回以下某個 ConnectModeEnum 的值.
		[常量]				 [說明] 
		----------------------------------
		adModeUnknown		 默認值. 表明權限尚未設置或無法確定. 
		adModeRead			 表明權限為只讀. 
		adModeWrite			 表明權限為只寫. 
		adModeReadWrite		 表明權限為讀/寫. 
		adModeShareDenyRead  防止其他用戶使用讀權限打開連接. 
		adModeShareDenyWrite 防止其他用戶使用寫權限打開連接. 
		adModeShareExclusive 防止其他用戶打開連接. 
		adModeShareDenyNone  防止其他用戶使用任何權限打開連接.
    ----------------------------------------------------------
	Remarks: 使用 Mode 屬性可設置或返回當前連接上提供者正在使用的訪問權限.
==========================================================================*/
ConnectModeEnum CAdoConnection::GetMode()
{
	ASSERT(m_pConnection != NULL);
	try
	{
		return m_pConnection->GetMode();
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: GetMode 發生異常. 錯誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		return adModeUnknown;
	} 
	return adModeUnknown;
}

/*========================================================================
	Name:		設置在 Connection 中修改數據的可用權限. 請參考 GetMode 方法.
    ----------------------------------------------------------
	Remarks:	只能在關閉 Connection 對象時方可設置 Mode 屬性.
==========================================================================*/
BOOL CAdoConnection::SetMode(ConnectModeEnum mode)
{
	ASSERT(m_pConnection != NULL);
	ASSERT(!IsOpen());

	try
	{
		m_pConnection->PutMode(mode);
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: SetMode 發生異常. 錯誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		return FALSE;
	} 
	return TRUE;
}

/*========================================================================
    Name:		從數據源獲取數據庫信息.
	-----------------------------------------------------
	Params:		QueryType  所要運行的模式查詢類型.
	-----------------------------------------------------
	returns:	返回包含數據庫信息的 Recordset 對象. Recordset 將以只讀、靜態
			游標打開.
==========================================================================*/
_RecordsetPtr CAdoConnection::OpenSchema(SchemaEnum QueryType)
{
	ASSERT(m_pConnection != NULL);
	try
	{
		return m_pConnection->OpenSchema(QueryType, vtMissing, vtMissing);
	}
	catch(_com_error e)
	{
		TRACE(_T("Warning: OpenSchema方法發生異常. 錯誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		return NULL;
	} 
	return NULL;
}

/*########################################################################
			  ------------------------------------------------
									事務處理
			  ------------------------------------------------
  ########################################################################*/

/*========================================================================
    Name:		開始新事務.
	-----------------------------------------------------
	returns:	對于支持嵌套事務的數據庫來說, 在已打開的事務中調用 BeginTrans 
	方法將開始新的嵌套事務. 返回值將指示嵌套層次: 返回值為 1 表示已打開頂層
	事務 (即事務不被另一個事務所嵌套), 返回值為 2 表示已打開第二層事務(嵌套
	在頂層事務中的事務), 依次類推.
	-----------------------------------------------------
	Remarks:	一旦調用了 BeginTrans 方法, 在調用 CommitTrans 或 RollbackTrans
	結束事務之前, 數據庫將不再立即提交所作的任何更改.
		
==========================================================================*/
long CAdoConnection::BeginTrans()
{
	ASSERT(m_pConnection != NULL);
	try
	{
		return m_pConnection->BeginTrans();
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: BeginTrans 方法發生異常. 錯誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		return -1;
	} 
	return -1;
}

/*========================================================================
    Name:		保存任何更改并結束當前事務.
	-----------------------------------------------------
	Remarks:	調用 CommitTrans 或 RollbackTrans 只影響最新打開的事務; 在
	處理任何更高層事務之前必須關閉或回卷當前事務.
==========================================================================*/
BOOL CAdoConnection::CommitTrans()
{
	ASSERT(m_pConnection != NULL);
	try
	{
		return SUCCEEDED(m_pConnection->CommitTrans());
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: CommitTrans 方法發生異常. 錯誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		return FALSE;
	} 
	return FALSE;
}

/*========================================================================
    Name:		取消當前事務中所作的任何更改并結束事務.
==========================================================================*/
BOOL CAdoConnection::RollbackTrans()
{
	ASSERT(m_pConnection != NULL);
	try
	{
		return SUCCEEDED(m_pConnection->RollbackTrans());
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: RollbackTrans 方法發生異常. 錯誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		return FALSE;
	} 
	return FALSE;
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美v日韩v国产v| 日韩欧美成人午夜| 秋霞电影网一区二区| 中文字幕不卡一区| 日韩视频免费观看高清完整版在线观看 | 蜜桃av一区二区| 亚洲美女偷拍久久| 久久久久国产一区二区三区四区 | 国产精品视频看| 在线观看免费视频综合| 国产一区二区成人久久免费影院 | 综合色中文字幕| 精品久久久久久久久久久久包黑料| 91污在线观看| 成人看片黄a免费看在线| 激情小说欧美图片| 日韩高清国产一区在线| 亚洲久本草在线中文字幕| 国产亚洲欧美在线| 日韩一区二区三区四区| 欧美日本在线看| 在线欧美日韩国产| 色欧美片视频在线观看 | 欧美午夜电影在线播放| 色婷婷精品久久二区二区蜜臀av | 精品日韩av一区二区| 欧美日韩成人在线一区| 欧美久久免费观看| 日韩欧美中文一区| 欧美精品久久一区二区三区| 欧美日韩国产综合一区二区三区| 欧美日韩国产综合视频在线观看| 欧美吞精做爰啪啪高潮| 日韩一区二区三区免费看 | 国产精品网曝门| 国产一区二区三区蝌蚪| 日日欢夜夜爽一区| 亚洲精品视频在线看| 欧美性大战久久久久久久| 不卡大黄网站免费看| 欧美日韩一区二区电影| 欧美变态口味重另类| 国产亚洲一区二区三区四区 | 亚洲成人综合网站| 丁香天五香天堂综合| 欧美熟乱第一页| 国产天堂亚洲国产碰碰| 亚洲国产日韩精品| 成人免费福利片| 91麻豆精品91久久久久同性| 精品播放一区二区| 亚洲国产精品久久艾草纯爱| 欧美三级日韩在线| 欧美精品乱码久久久久久按摩| 色先锋资源久久综合| 97精品电影院| 欧美主播一区二区三区美女| 精品一区二区国语对白| 亚洲成av人影院| 日韩中文字幕区一区有砖一区 | 极品少妇xxxx精品少妇| 99久久综合狠狠综合久久| 欧美日韩国产高清一区二区| 久久嫩草精品久久久精品| 日韩精品久久理论片| 在线精品亚洲一区二区不卡| 国产亚洲精久久久久久| 免费不卡在线观看| 在线视频欧美精品| 国产精品色哟哟网站| 久久99精品一区二区三区| 91免费小视频| 中文字幕免费不卡在线| 美女脱光内衣内裤视频久久影院| 日本高清不卡视频| 国产精品国产a| 国产成人av在线影院| 久久久99久久| 国产中文字幕一区| 精品日韩在线一区| 精品一区二区三区视频在线观看 | 亚洲网友自拍偷拍| 欧美伦理影视网| 亚洲成人激情自拍| 678五月天丁香亚洲综合网| 午夜伊人狠狠久久| 制服丝袜激情欧洲亚洲| 日韩av不卡一区二区| 欧美美女一区二区三区| 亚洲国产精品久久艾草纯爱| 欧美日韩在线一区二区| 日本亚洲视频在线| 日韩精品一区二区三区四区| 美女视频一区二区三区| 欧美成人一区二区| 国产精品亚洲午夜一区二区三区| 国产精品国产三级国产aⅴ原创 | 国产综合色产在线精品| 国产欧美视频一区二区| 99视频在线精品| 日本一不卡视频| 国产欧美一区二区精品久导航| 懂色av一区二区在线播放| 亚洲精品精品亚洲| 亚洲精品一区二区三区福利| 在线视频中文字幕一区二区| 久久99最新地址| 亚洲与欧洲av电影| 久久综合狠狠综合久久综合88| 成人h版在线观看| 亚洲国产精品视频| 国产性色一区二区| 91精品国产色综合久久不卡电影 | 亚洲国产电影在线观看| 精品国产人成亚洲区| 在线观看视频一区二区欧美日韩| 国产高清久久久| 国产在线国偷精品免费看| 亚洲成av人片一区二区三区| 日韩一区中文字幕| 国产欧美一区二区三区在线看蜜臀 | 一区二区三区免费看视频| 久久久久99精品一区| 日韩美女视频在线| 在线成人免费观看| 欧美色综合影院| 色婷婷精品久久二区二区蜜臀av| 成人精品免费看| 国产一区二区精品久久91| 国产在线国偷精品免费看| 久久成人av少妇免费| 国产精品一区二区三区99| 国产一区二区福利视频| 久久精品国产**网站演员| 国产麻豆视频一区二区| 国产a视频精品免费观看| 国内精品久久久久影院一蜜桃| 另类欧美日韩国产在线| 精品一区二区三区在线播放视频 | 专区另类欧美日韩| 樱花影视一区二区| 亚洲五码中文字幕| 日韩影院免费视频| 精品一区二区三区在线观看国产| 精品中文字幕一区二区| 国产精品亚洲成人| 日本高清成人免费播放| 777a∨成人精品桃花网| 精品福利一区二区三区| 中文字幕在线免费不卡| 亚洲最大成人网4388xx| 麻豆国产精品官网| 国产69精品一区二区亚洲孕妇 | 福利一区二区在线| 色婷婷av久久久久久久| 欧美成人一区二区三区在线观看| 日韩电影在线免费| 国产精品乡下勾搭老头1| 欧美视频自拍偷拍| 一区在线播放视频| 极品销魂美女一区二区三区| 在线一区二区三区四区| 国产日韩欧美一区二区三区综合 | 中文字幕亚洲在| 黑人巨大精品欧美一区| 精品视频在线看| 亚洲男人电影天堂| 高清成人在线观看| 日韩亚洲国产中文字幕欧美| 日韩美女视频一区二区 | 免费成人av资源网| 欧美视频一区在线| 国产精品人成在线观看免费| 日本中文在线一区| 欧美午夜精品一区二区蜜桃| 中文字幕综合网| 国产91在线|亚洲| 中文一区在线播放| 国产一区二区在线电影| 91精品国模一区二区三区| 日韩国产精品大片| 欧美肥妇毛茸茸| 日韩av在线播放中文字幕| 在线日韩国产精品| 亚洲国产精品t66y| 不卡欧美aaaaa| 欧美韩国日本一区| 高清shemale亚洲人妖| 亚洲人xxxx| 欧美一区二区三区免费在线看| 麻豆精品一区二区综合av| www久久精品| gogo大胆日本视频一区| 亚洲欧美另类久久久精品 | 欧美丰满一区二区免费视频| 麻豆精品视频在线| 国产欧美一区二区精品婷婷| 高清成人免费视频| 亚洲一区二区免费视频| 欧美一级日韩不卡播放免费|