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

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

?? adoconn.cpp

?? ADO訪問數據庫,將其解壓
?? CPP
字號:
// ADOConn.cpp: implementation of the CADOConn class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "ADOConn.h"

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

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

ADOConn::ADOConn()
{
	memset(error,0,1024);
}

ADOConn::~ADOConn()
{

}

//////////////////////////////////////////////////////////////////////
// CADOException Class
//////////////////////////////////////////////////////////////////////

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

CADOException::CADOException(char* pchMessage)
{
	m_strMessage = pchMessage;
	m_nError = GetLastError();
}
BOOL CADOException::GetErrorMessage(LPTSTR lpstrError, UINT nMaxError,PUINT pnHelpContext /*= NULL*/)
{
	
	char text[200];
	if(m_nError == 0) 
	{
		wsprintf(text, "%s error", (const char*) m_strMessage);
	}
	else 
	{
		wsprintf(text, "%s error #%d", (const char*) m_strMessage, m_nError);
	}
	strncpy(lpstrError, text, nMaxError - 1);
	return TRUE;
}

BOOL ADOConn::OnInitADOConn(LPCTSTR ConnStr)
{
	::CoInitialize(NULL);
	
	try
	{
		// 創建Connection對象
		m_pConnection.CreateInstance("ADODB.Connection");
		// 設置連接字符串,必須是BSTR型或者_bstr_t類型
		_bstr_t strConnect = _bstr_t(ConnStr);//"Provider=SQLOLEDB; Server=127.0.0.1;Database=EventLogg; uid=event; pwd=event;";
		m_pConnection->Open(strConnect,"","",adModeUnknown);
		return TRUE;
	}
	// 捕捉異常
	catch(_com_error e)
	{
		// 顯示錯誤信息
		TRACE(e.Description());
//		sprintf(error,"連接數據庫失敗 請檢查連接字符串\r\n當前連接字符串為:%s",ConnStr);
//		throw new CADOException(error);
		throw new CADOException("連接數據庫失敗");
	}
	
}

//執行SQL語句  包含update delete insert
BOOL ADOConn::ExecuteSQL(LPCTSTR lpszSQL)
{
	//	_variant_t RecordsAffected;
	try
	{
		// Connection對象的Execute方法:(_bstr_t CommandText, 
		// VARIANT * RecordsAffected, long Options ) 
		// 其中CommandText是命令字串,通常是SQL命令。
		// 參數RecordsAffected是操作完成后所影響的行數, 
		// 參數Options表示CommandText的類型:adCmdText-文本命令;adCmdTable-表名
		// adCmdProc-存儲過程;adCmdUnknown-未知
		m_pConnection->Execute(_bstr_t(lpszSQL),NULL,adCmdText);
		return true;
	}
	catch(_com_error e)
	{
		// 顯示錯誤信息
		CString str;
		TRACE(e.Description());
		str=(char *)e.Description();
		sprintf(error,"%s",str);
		throw new CADOException(error);
	}
	
}


//執行SELECT語句,獲得結果集,結果集放在m_pRecordset中
_RecordsetPtr& ADOConn::GetRecordSet(LPCTSTR lpszSQL)
{
	try
	{
		// 創建記錄集對象
		m_pRecordset.CreateInstance(__uuidof(Recordset));
		// 取得表中的記錄
		m_pRecordset->Open(_bstr_t(lpszSQL),m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
	}
	// 捕捉異常
	catch(_com_error e)
	{
		// 顯示錯誤信息
		CString str;
		TRACE(e.Description());
		str=(char *)e.Description();
		sprintf(error,"%s",str);
		throw new CADOException(error);
	}
	// 返回記錄集
	return m_pRecordset;
}
VARIANT ADOConn::GetCollect(LPCTSTR Name)
{
//	char lpDest[1000];
//	memset(lpDest,0,1000);
//	CString s="";
	VARIANT  vt;
	try
	{
		vt = m_pRecordset->GetCollect(Name);
/*
		_bstr_t bstr = (_bstr_t)vt;
		if(lpDest != "")
		{
			strcpy(lpDest,bstr);
			s=lpDest;
		}*/

	}
	catch (_com_error e)
	{
		CString str;
		TRACE(e.Description());
		str=(char *)e.Description();
		sprintf(error,"%s",str);
		throw new CADOException(error);
	}
	return vt;
// 	return s;
}
//獲取某個字段的值
BOOL ADOConn::GetCollect(LPCTSTR Name, char *lpDest)
{
	VARIANT  vt;
	try
	{
		vt = m_pRecordset->GetCollect(Name);
		_bstr_t bstr = (_bstr_t)vt;
		if(lpDest != "")
		{
			strcpy(lpDest,bstr);
		}
	}
	catch (_com_error e)
	{
		CString str;
		TRACE(e.Description());
		str=(char *)e.Description();
		sprintf(error,"%s",str);
		throw new CADOException(error);
	}
	return TRUE;
}
//關閉數據庫 
BOOL ADOConn::CloseADOConnection()
{
	try
	{
		m_pConnection->Close();
	}
	catch (_com_error e)
	{
		TRACE(e.Description());
		sprintf(error,e.Description());
		throw new CADOException("關閉數據庫失敗");
	}
	return TRUE;
}
//關表
BOOL ADOConn::CloseTable()
{
	try
	{
		m_pRecordset->Close();
	}
	catch (_com_error e)
	{
		TRACE(e.Description());
		sprintf(error,e.Description());
		throw new CADOException("關閉表失敗");
	}
	return TRUE;
}
//下一個
BOOL ADOConn::MoveNext()
{
	try
	{
		m_pRecordset->MoveNext();
	}
	catch (_com_error e)
	{
		TRACE(e.Description());
		sprintf(error,e.Description());
		throw new CADOException("結果集移向下一個失敗");
	}
	return TRUE;
}
//尾
BOOL ADOConn::adoEOF()
{
	return m_pRecordset->adoEOF;
}
//頭
BOOL ADOConn::adoBOF()
{
	return m_pRecordset->adoBOF;
}
//事務開始
BOOL ADOConn::BeginTrans()
{
	try
	{
		m_pConnection->BeginTrans();
	}
	catch (_com_error e) 
	{
		TRACE(e.Description());
		sprintf(error,e.Description());
		throw new CADOException("事務開始失敗");
	}	
	return TRUE;
}
//遞交事務
BOOL ADOConn::CommitTrans()
{
	try
	{
		m_pConnection->CommitTrans();
	}
	catch (_com_error e)
	{
		TRACE(e.Description());
		sprintf(error,e.Description());
		throw new CADOException("遞交事務失敗");
	}
	return TRUE;
}
//事務回滾
BOOL ADOConn::RollbackTrans()
{
	try
	{
		m_pConnection->RollbackTrans();
	}
	catch (_com_error e)
	{
		TRACE(e.Description());
		sprintf(error,e.Description());
		throw new CADOException("回滾事務失敗");
	}
	return TRUE;
}

void ADOConn::ExitConnect()
{
	// 關閉記錄集和連接
	if (m_pRecordset != NULL)
		m_pRecordset->Close();
	m_pConnection->Close();
	// 釋放環境
	::CoUninitialize();
}

BOOL ADOConn::ExecuteProc(LPCTSTR lpszSQL)
{
	//	_variant_t RecordsAffected;
	try
	{
		// Connection對象的Execute方法:(_bstr_t CommandText, 
		// VARIANT * RecordsAffected, long Options ) 
		// 其中CommandText是命令字串,通常是SQL命令。
		// 參數RecordsAffected是操作完成后所影響的行數, 
		// 參數Options表示CommandText的類型:adCmdText-文本命令;adCmdTable-表名
		// adCmdProc-存儲過程;adCmdUnknown-未知
		m_pConnection->Execute(_bstr_t(lpszSQL),NULL,adCmdStoredProc);
		return true;
	}
	catch(_com_error e)
	{
		TRACE(e.Description());
//		sprintf(error,"\t執行SQL語句失敗\r\n SQL語句為:%s",lpszSQL);
//		throw new CADOException(error);
		throw new CADOException("執行SQL語句失敗");
	}
	
}
BOOL ADOConn::ExecuteProc(LPCTSTR lpszSQL,const vector<CString> &key,const vector<CString> &value)
{
	try
	{
		CString s1="";
		CString s2="";
		_CommandPtr   pCmd;  
		pCmd.CreateInstance(__uuidof(Command));
		typedef vector<_ParameterPtr> parameter;
		parameter para;
		_ParameterPtr   pParam1,pParam2,pParam3,pParam4,pParam5;
		pCmd->CommandType=ADODB::adCmdStoredProc;
		pCmd->CommandText=lpszSQL;
/*		pParam1.CreateInstance("ADODB.Parameter");
		s1=map_it->first;
		s2=map_it->second;
		pParam1=pCmd->CreateParameter(_bstr_t(map_it->first),ADODB::adVarChar,ADODB::adParamInput,map_it->second.GetLength(),_variant_t(map_it->second));
		pCmd->Parameters->Append(pParam1);
*/		pCmd->ActiveConnection = m_pConnection;
		for(size_t size=0;size<key.size();++size)
		{
			switch(size)
			{
				case 0:
					{
						pParam1.CreateInstance("ADODB.Parameter");
						s1=key[size];
						s2=value[size];
						pParam1=pCmd->CreateParameter(_bstr_t(key[size]),ADODB::adVarChar,ADODB::adParamInput,value[size].GetLength(),_variant_t(value[size]));
						pCmd->Parameters->Append(pParam1);
					}
					break;
				case 1:
					{
						s1=key[size];
						s2=value[size];
						pParam2.CreateInstance("ADODB.Parameter");
						pParam2=pCmd->CreateParameter(_bstr_t(key[size]),ADODB::adVarChar,ADODB::adParamInput,value[size].GetLength(),_variant_t(value[size]));
						pCmd->Parameters->Append(pParam2);
					}
					break;
				case 2:
					{
						s1=key[size];
						s2=value[size];
						pParam3.CreateInstance("ADODB.Parameter");
						pParam3=pCmd->CreateParameter(_bstr_t(key[size]),ADODB::adVarChar,ADODB::adParamInput,value[size].GetLength(),_variant_t(value[size]));
						pCmd->Parameters->Append(pParam3);
					}
					break;
			}
		}
		// Connection對象的Execute方法:(_bstr_t CommandText, 
		// VARIANT * RecordsAffected, long Options ) 
		// 其中CommandText是命令字串,通常是SQL命令。
		// 參數RecordsAffected是操作完成后所影響的行數, 
		// 參數Options表示CommandText的類型:adCmdText-文本命令;adCmdTable-表名
		// adCmdStoredProc-存儲過程;adCmdUnknown-未知
		pCmd->Execute(NULL,NULL,ADODB::adCmdStoredProc);
		return true;
	}
	catch(_com_error e)
	{
		CString str;
		TRACE(e.Description());
		str=(char *)e.Description();
		sprintf(error,"%s",str);
		throw new CADOException(error);
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品欧美乱码久久久久久1区2区| 久久国内精品自在自线400部| 国产欧美日韩综合精品一区二区| 欧美一区二区三区免费观看视频| 欧美揉bbbbb揉bbbbb| 色呦呦国产精品| 91久久国产最好的精华液| 99vv1com这只有精品| 91在线国产福利| 99re视频精品| 在线观看国产日韩| 欧美日韩在线亚洲一区蜜芽| 欧洲av一区二区嗯嗯嗯啊| 欧美伊人久久大香线蕉综合69 | 欧美日韩一区中文字幕| 日本高清不卡在线观看| 欧美在线|欧美| 在线播放/欧美激情| 欧美成人高清电影在线| 精品成人一区二区三区四区| 久久精品一区二区三区不卡| 国产免费观看久久| 樱桃视频在线观看一区| 性做久久久久久久免费看| 日韩电影在线一区二区三区| 美女脱光内衣内裤视频久久影院| 久久er99精品| 成人午夜免费av| 在线观看国产一区二区| 日韩视频中午一区| 国产亚洲成年网址在线观看| 亚洲免费av高清| 性做久久久久久免费观看欧美| 蜜臀91精品一区二区三区| 国产成人小视频| 日本电影欧美片| 日韩午夜三级在线| 中文无字幕一区二区三区| 亚洲蜜臀av乱码久久精品蜜桃| 五月婷婷综合激情| 国产精品亚洲人在线观看| 色成年激情久久综合| 日韩一区二区在线观看| 中文字幕欧美激情一区| 一区二区三区欧美日| 蓝色福利精品导航| 91在线免费播放| 欧美成人精品高清在线播放| 国产精品色哟哟网站| 日韩在线一区二区| 国产成人精品三级麻豆| 欧美无砖砖区免费| 久久日韩粉嫩一区二区三区| 亚洲影视在线观看| 国产美女精品一区二区三区| 色爱区综合激月婷婷| 亚洲精品一区在线观看| 亚洲精品免费看| 国产一区二区影院| 欧美日韩国产一级片| 国产精品天天摸av网| 免费久久精品视频| 日本道在线观看一区二区| 国产偷国产偷精品高清尤物| 亚洲一区二区三区四区在线免费观看| 国产在线视频一区二区| 欧美体内she精高潮| 国产欧美日韩视频在线观看| 丝袜美腿亚洲色图| 91在线观看视频| 久久精品亚洲国产奇米99| 天堂精品中文字幕在线| 99国产精品久久久久久久久久 | 中文字幕色av一区二区三区| 日韩avvvv在线播放| 色婷婷久久久亚洲一区二区三区| 久久综合丝袜日本网| 免费精品视频在线| 欧美日韩精品久久久| 亚洲色图在线看| 成人av中文字幕| 久久亚洲影视婷婷| 久久国产三级精品| 91麻豆精品国产自产在线 | 精品影视av免费| 欧美色老头old∨ideo| 亚洲欧美视频在线观看视频| 风间由美一区二区三区在线观看 | 一区二区三区蜜桃| 成人激情免费视频| 国产欧美日韩三级| 国产一区视频导航| 欧美成人精品二区三区99精品| 亚洲国产乱码最新视频| 日本大香伊一区二区三区| 国产精品久久久爽爽爽麻豆色哟哟| 精品一区二区国语对白| 91精品福利在线一区二区三区| 一区二区三区四区中文字幕| 99re这里只有精品视频首页| 国产精品欧美久久久久一区二区| 国产乱一区二区| 26uuu欧美| 国产盗摄精品一区二区三区在线 | 最新久久zyz资源站| 国产成人免费视频网站| 久久亚洲私人国产精品va媚药| 国内不卡的二区三区中文字幕| 日韩精品一区二区三区四区 | 日韩av网站免费在线| 欧美人伦禁忌dvd放荡欲情| 午夜久久久影院| 欧美日韩国产区一| 免费看日韩a级影片| 欧美成人精品福利| 国产精品996| 国产精品免费aⅴ片在线观看| 成人免费视频播放| 中文字幕在线观看不卡| 色噜噜狠狠成人网p站| 亚洲综合成人在线| 91麻豆精品国产无毒不卡在线观看| 免费在线观看一区| 国产亚洲女人久久久久毛片| 国产成人午夜精品影院观看视频| 欧美激情在线观看视频免费| 99久久er热在这里只有精品15| 亚洲激情图片一区| 欧美军同video69gay| 麻豆国产91在线播放| 久久久精品天堂| 99久久精品99国产精品| 午夜精彩视频在线观看不卡| 欧美一区二区三区视频免费播放| 国产精一区二区三区| 亚洲日韩欧美一区二区在线| 在线一区二区三区做爰视频网站| 亚洲一区二区三区四区中文字幕| 欧美一区二区视频在线观看| 国内精品国产成人国产三级粉色 | 国产欧美一区二区精品性色| www.成人网.com| 亚洲国产精品人人做人人爽| 精品乱码亚洲一区二区不卡| 不卡高清视频专区| 爽好久久久欧美精品| 久久久欧美精品sm网站| 91视频免费观看| 免费在线观看一区二区三区| 欧美国产1区2区| 欧美亚洲一区三区| 国产精品一区2区| 亚洲一级二级三级| 国产亚洲制服色| 欧美色窝79yyyycom| 国产呦精品一区二区三区网站| 亚洲美女一区二区三区| 欧美一级片免费看| 91在线视频播放地址| 精品中文av资源站在线观看| 亚洲欧美二区三区| 精品福利一二区| 在线观看91精品国产入口| 狠狠色综合色综合网络| 一区二区三区精品久久久| xvideos.蜜桃一区二区| 在线中文字幕一区| 成人激情视频网站| 欧美aaaaa成人免费观看视频| 亚洲欧美电影院| 国产午夜精品美女毛片视频| 欧美日韩成人高清| 91原创在线视频| 国内精品不卡在线| 日韩av一级片| 亚洲丶国产丶欧美一区二区三区| 中文字幕av不卡| 久久综合九色综合97_久久久| 欧美喷水一区二区| 91天堂素人约啪| 国产suv精品一区二区6| 久草热8精品视频在线观看| 午夜成人免费视频| 一个色妞综合视频在线观看| 国产欧美一二三区| 爽好久久久欧美精品| 欧美不卡在线视频| 欧美色爱综合网| jizzjizzjizz欧美| 国内不卡的二区三区中文字幕| 图片区小说区区亚洲影院| 亚洲精品免费在线| 国产精品久久国产精麻豆99网站| 久久久久久久久久久久电影 | 日韩一区在线看| 欧美一区二区观看视频| 欧美日韩一本到| 欧美一个色资源| 久久―日本道色综合久久| 亚洲国产精品ⅴa在线观看|