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

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

?? adocommand.cpp

?? VC++ 6.0開發(fā)。之中打印部分可能對您有值得參考的地方。其他的部分還不是很完善
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/*########################################################################
	Filename: 	ado.cpp
	----------------------------------------------------
	Remarks:	...
	----------------------------------------------------
	Author:		成真
	Email:		anyou@sina.com
				anyou@msn.com
	Created:	20/1/2003 19:19
  ########################################################################*/
#include "stdafx.h"
#include "resource.h"
#include "AdoCommand.h"


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

/*########################################################################
			------------------------------------------------
						   CAdoCommand class
			------------------------------------------------
  ########################################################################*/

CAdoCommand::CAdoCommand()
{
	///創(chuàng)建 Connection 對象---------------------------
	m_pCommand.CreateInstance("ADODB.Command");
	#ifdef _DEBUG
	if (m_pCommand == NULL)
	{
		AfxMessageBox("Command 對象創(chuàng)建失敗! 請確認(rèn)是否初始化了Com環(huán)境.");
	}
	#endif
	ASSERT(m_pCommand != NULL);
}

CAdoCommand::CAdoCommand(CAdoConnection* pAdoConnection, CString strCommandText, CommandTypeEnum CommandType)
{
	///創(chuàng)建 Connection 對象---------------------------
	m_pCommand.CreateInstance("ADODB.Command");
	#ifdef _DEBUG
	if (m_pCommand == NULL)
	{
		AfxMessageBox("Command 對象創(chuàng)建失敗! 請確認(rèn)是否初始化了Com環(huán)境.");
	}
	#endif
	ASSERT(m_pCommand != NULL);
	ASSERT(pAdoConnection != NULL);
	SetConnection(pAdoConnection);
	if (strCommandText != _T(""))
	{
		SetCommandText(LPCTSTR(strCommandText));
	}
	SetCommandType(CommandType);
}

CAdoCommand::~CAdoCommand()
{
	Release();
}

void CAdoCommand::Release()
{
	try
	{
		m_pCommand.Release();
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: Release方法發(fā)生異常. 錯(cuò)誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
	} 
}

_RecordsetPtr CAdoCommand::Execute(long Options)
{
	ASSERT(m_pCommand != NULL);
	try
	{
		return m_pCommand->Execute(NULL, NULL, Options);
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: Execute 方法發(fā)生異常. 錯(cuò)誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		return NULL;
	} 
}

BOOL CAdoCommand::Cancel()
{
	ASSERT(m_pCommand != NULL);
	
	try
	{
		return (m_pCommand->Cancel() == S_OK);
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: Cancel 方法發(fā)生異常. 錯(cuò)誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		return FALSE;
	} 
}

_ParameterPtr CAdoCommand::CreateParameter(LPCTSTR lpstrName, 
								  DataTypeEnum Type, 
								  ParameterDirectionEnum Direction, 
								  long Size, 
								  _variant_t Value)
{

	ASSERT(m_pCommand != NULL);
	try
	{
		return m_pCommand->CreateParameter(_bstr_t(lpstrName), Type, Direction, Size, Value);
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: CreateParameter 方法發(fā)生異常. 錯(cuò)誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		return NULL;
	} 
}

BOOL CAdoCommand::SetCommandText(LPCTSTR lpstrCommand)
{
	ASSERT(m_pCommand != NULL);
	try
	{
		m_pCommand->PutCommandText(_bstr_t(lpstrCommand));
		return TRUE;
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: PutCommandText 方法發(fā)生異常. 錯(cuò)誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		return FALSE;
	} 
}

BOOL CAdoCommand::SetConnection(CAdoConnection *pConnect)
{
	ASSERT(pConnect != NULL);
	ASSERT(pConnect->GetConnection() != NULL);
	ASSERT(m_pCommand != NULL);
	
	try
	{
		m_pCommand->PutActiveConnection(_variant_t((IDispatch*)pConnect->GetConnection(), true));
		return TRUE;
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: SetConnection 方法發(fā)生異常. 錯(cuò)誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		return FALSE;
	} 
}
/*========================================================================
	Name:		指示 Command 對象的類型。
    ----------------------------------------------------------
	returns:	返回以下某個(gè) CommandTypeEnum 的值.
		[常量]				 [說明] 
		----------------------------------
		adCmdText			指示strSQL為命令文本, 即普通的SQL語句. 
		adCmdTable			指示ADO生成SQL查詢返回以 strSQL 命名的表中的
						所有行. 
		adCmdTableDirect	指示所作的更改在strSQL中命名的表中返回所有行. 
		adCmdStoredProc		指示strSQL為存儲(chǔ)過程. 
		adCmdUnknown		指示strSQL參數(shù)中的命令類型為未知. 
		adCmdFile			指示應(yīng)從在strSQL中命名的文件中恢復(fù)保留(保存的)
						Recordset. 
		adAsyncExecute		指示應(yīng)異步執(zhí)行strSQL. 
		adAsyncFetch		指示在提取 Initial Fetch Size 屬性中指定的初始
						數(shù)量后, 應(yīng)該異步提取所有剩余的行. 如果所需的行尚未
						提取, 主要的線程將被堵塞直到行重新可用. 
		adAsyncFetchNonBlocking 指示主要線程在提取期間從未堵塞. 如果所請求
						的行尚未提取, 當(dāng)前行自動(dòng)移到文件末尾. 
   ----------------------------------------------------------
	Remarks: 使用 CommandType 屬性可優(yōu)化 CommandText 屬性的計(jì)算。
		如果 CommandType 屬性的值等于 adCmdUnknown(默認(rèn)值), 系統(tǒng)的性能將會(huì)
	降低, 因?yàn)?ADO 必須調(diào)用提供者以確定 CommandText 屬性是 SQL 語句、還是存
	儲(chǔ)過程或表格名稱。如果知道正在使用的命令的類型, 可通過設(shè)置 CommandType 
	屬性指令 ADO 直接轉(zhuǎn)到相關(guān)代碼。如果 CommandType 屬性與 CommandText 屬
	性中的命令類型不匹配, 調(diào)用 Execute 方法時(shí)將產(chǎn)生錯(cuò)誤。
==========================================================================*/
BOOL CAdoCommand::SetCommandType(CommandTypeEnum CommandType)
{
	ASSERT(m_pCommand != NULL);
	
	try
	{
		m_pCommand->PutCommandType(CommandType);
		return TRUE;
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: PutCommandType 方法發(fā)生異常. 錯(cuò)誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		return FALSE;
	} 
}

long CAdoCommand::GetState()
{
	ASSERT(m_pCommand != NULL);
	
	try
	{
		return m_pCommand->GetState();
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: GetState 方法發(fā)生異常. 錯(cuò)誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		return -1;
	} 
}

BOOL CAdoCommand::SetCommandTimeOut(long lTime)
{
	ASSERT(m_pCommand != NULL);
	
	try
	{
		m_pCommand->PutCommandTimeout(lTime);
		return TRUE;
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: SetCommandTimeOut 方法發(fā)生異常. 錯(cuò)誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		return FALSE;
	} 
}

ParametersPtr CAdoCommand::GetParameters()
{
	ASSERT(m_pCommand != NULL);
	
	try
	{
		return m_pCommand->GetParameters();
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: SetCommandTimeOut 方法發(fā)生異常. 錯(cuò)誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		return NULL;
	} 
}

BOOL CAdoCommand::Append(_ParameterPtr param)
{
	ASSERT(m_pCommand != NULL);
	
	try
	{
		return m_pCommand->GetParameters()->Append((IDispatch*)param);
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: Append 方法發(fā)生異常. 錯(cuò)誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		return FALSE;
	} 
}


_ParameterPtr CAdoCommand::GetParamter(LPCTSTR lpstrName)
{
	ASSERT(m_pCommand != NULL);
	
	try
	{
		return m_pCommand->GetParameters()->GetItem(_variant_t(lpstrName));
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: GetParamter 方法發(fā)生異常. 錯(cuò)誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		return NULL;
	} 
}

_ParameterPtr CAdoCommand::GetParameter(long index)
{
	ASSERT(m_pCommand != NULL);
	
	try
	{
		return m_pCommand->GetParameters()->GetItem(_variant_t(index));
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: GetParamter 方法發(fā)生異常. 錯(cuò)誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		return NULL;
	} 
}

_variant_t CAdoCommand::GetValue(long index)
{
	ASSERT(m_pCommand != NULL);
	
	try
	{
		return m_pCommand->GetParameters()->GetItem(_variant_t(index))->Value;
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: GetValue 方法發(fā)生異常. 錯(cuò)誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		_variant_t vt;
		vt.vt = VT_NULL;
		return vt;
	} 
}

_variant_t CAdoCommand::GetValue(LPCTSTR lpstrName)
{
	ASSERT(m_pCommand != NULL);
	
	try
	{
		return m_pCommand->GetParameters()->GetItem(_variant_t(lpstrName))->Value;
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: GetValue 方法發(fā)生異常. 錯(cuò)誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		_variant_t vt;
		vt.vt = VT_NULL;
		return vt;
	} 
}

_CommandPtr& CAdoCommand::GetCommand()
{
	return m_pCommand;
}

CAdoParameter CAdoCommand::operator [](int index)
{
	CAdoParameter pParameter;
	ASSERT(m_pCommand != NULL);
	try
	{
		pParameter = m_pCommand->GetParameters()->GetItem(_variant_t(long(index)));
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: operator [] 方法發(fā)生異常. 錯(cuò)誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
	}
	return pParameter;
}

CAdoParameter CAdoCommand::operator [](LPCTSTR lpszParamName)
{
	CAdoParameter pParameter;
	ASSERT(m_pCommand != NULL);
	try
	{
		pParameter = m_pCommand->GetParameters()->GetItem(_variant_t(lpszParamName));
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: operator [] 方法發(fā)生異常. 錯(cuò)誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
	}
	return pParameter;
}


/*########################################################################
			  ------------------------------------------------
						     CAdoParameter class
			  ------------------------------------------------
  ########################################################################*/
CAdoParameter::CAdoParameter()
{
	m_pParameter = NULL;
	m_pParameter.CreateInstance("ADODB.Parameter");
	#ifdef _DEBUG
	if (m_pParameter == NULL)
	{
		AfxMessageBox("Parameter 對象創(chuàng)建失敗! 請確認(rèn)是否初始化了Com環(huán)境.");
	}
	#endif
	ASSERT(m_pParameter != NULL);
	m_strName = _T("");
}

CAdoParameter::CAdoParameter(DataTypeEnum DataType, long lSize, ParameterDirectionEnum Direction, CString strName)
{
	m_pParameter = NULL;
	m_pParameter.CreateInstance("ADODB.Parameter");
	#ifdef _DEBUG
	if (m_pParameter == NULL)
	{
		AfxMessageBox("Parameter 對象創(chuàng)建失敗! 請確認(rèn)是否初始化了Com環(huán)境.");
	}
	#endif
	ASSERT(m_pParameter != NULL);

	m_pParameter->Direction = Direction;
	m_strName = strName;
	m_pParameter->Name = m_strName.AllocSysString();
	m_pParameter->Type = DataType;
	m_pParameter->Size = lSize;
}

_ParameterPtr& CAdoParameter::operator =(_ParameterPtr& pParameter)
{
	if (pParameter != NULL)
	{
		m_pParameter = pParameter;
	}
	else
	{
		return pParameter;
	}
	return m_pParameter;
}

CAdoParameter::~CAdoParameter()
{
	m_pParameter.Release();
	m_pParameter = NULL;
	m_strName = _T("");
}

/*========================================================================
	Name:		指示在 Parameter 對象中數(shù)字值或數(shù)字 Field 對象的精度。
    ----------------------------------------------------------
	Params:		設(shè)置或返回 Byte 值,用來表示值的最大位數(shù)。該值在 Parameter
			對象上為讀/寫,而在 Field 對象上為只讀。
    ----------------------------------------------------------
	Remarks:	使用 Precision 屬性可確定表示數(shù)字 Parameter 或 Field 對象值
			的最大位數(shù)
==========================================================================*/
BOOL CAdoParameter::SetPrecision(char nPrecision)
{
	ASSERT(m_pParameter != NULL);
	try
	{
		m_pParameter->PutPrecision(nPrecision);
		return TRUE;
	}
	catch (_com_error e)
	{
		TRACE(_T("Warning: SetPrecision 方法發(fā)生異常. 錯(cuò)誤信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		return FALSE;
	}
}

/*========================================================================
	Name:		指出 Parameter 或 Field 對象中數(shù)字值的范圍。
    ----------------------------------------------------------
	Params:		設(shè)置或返回字節(jié)值,指示數(shù)字值所精確到的小數(shù)點(diǎn)位數(shù)。
    ----------------------------------------------------------
	Remarks:	使用 NumericScale 屬性可確定用于表明數(shù)字型 Parameter 或 Field 
		對象的值的小數(shù)位數(shù)。
		對于 Parameter 對象,NumericScale 屬性為讀/寫。對于 Field 對象,
	NumericScale 屬性為只讀。

==========================================================================*/
BOOL CAdoParameter::SetNumericScale(int nScale)
{
	ASSERT(m_pParameter != NULL);
	try
	{
		m_pParameter->PutNumericScale(nScale);
		return TRUE;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合免费观看高清完整版 | 一本大道av伊人久久综合| 成人av先锋影音| 欧美无人高清视频在线观看| 欧美一区三区四区| 国产午夜精品在线观看| 亚洲欧美日韩国产手机在线 | 欧美日本在线观看| 精品久久国产老人久久综合| 中文字幕不卡在线观看| 亚洲网友自拍偷拍| 国产精品一区二区三区四区| 色婷婷综合在线| 精品日韩在线观看| 亚洲女爱视频在线| 国产在线视频一区二区三区| 欧美伊人久久大香线蕉综合69| 日韩一级片网站| 国产精品精品国产色婷婷| 日韩综合在线视频| 99re66热这里只有精品3直播| 91麻豆精品国产91久久久资源速度| 国产亚洲欧美色| 亚洲成在人线在线播放| 国产成人综合在线播放| 欧美日韩精品福利| 国产精品每日更新| 青青草精品视频| 色综合久久综合网欧美综合网 | 国产在线精品一区二区夜色 | 亚洲精品国产品国语在线app| 六月婷婷色综合| 欧美午夜精品一区二区蜜桃| 欧美国产亚洲另类动漫| 美女被吸乳得到大胸91| 欧美性高清videossexo| 亚洲欧洲在线观看av| 国产在线视频一区二区三区| 欧美女孩性生活视频| 成人免费视频在线观看| 六月丁香综合在线视频| 欧美麻豆精品久久久久久| 亚洲丝袜美腿综合| 国产成人在线视频免费播放| 欧美一级视频精品观看| 香蕉久久夜色精品国产使用方法| 97久久精品人人做人人爽| 久久精品夜色噜噜亚洲a∨| 视频一区视频二区中文| 久久久久国产成人精品亚洲午夜 | 欧美日韩一区高清| 亚洲欧美区自拍先锋| 丁香婷婷综合激情五月色| 日韩欧美视频一区| 亚洲成人av中文| 在线精品视频免费播放| ...xxx性欧美| 成人激情动漫在线观看| 国产亚洲一区二区三区在线观看| 蜜桃久久久久久| 91精品久久久久久蜜臀| 天天av天天翘天天综合网| 色94色欧美sute亚洲线路一ni| 中文字幕一区av| 成人国产免费视频| 国产精品国产三级国产普通话99| 国产成人综合在线播放| 欧美激情资源网| 高清不卡一区二区在线| 国产精品网站在线观看| 成人一道本在线| 国产精品区一区二区三| 成人黄色免费短视频| 国产精品成人网| 色噜噜狠狠色综合中国| 亚洲综合av网| 欧美日韩一级片网站| 偷偷要91色婷婷| 日韩免费在线观看| 国产在线精品视频| 国产精品久久三| 色狠狠色狠狠综合| 亚洲国产wwwccc36天堂| 在线91免费看| 美脚の诱脚舐め脚责91| 国产三级欧美三级日产三级99| 懂色av一区二区夜夜嗨| 1024成人网| 欧美日韩中文另类| 毛片不卡一区二区| 国产亚洲一区二区三区在线观看 | 国产精品盗摄一区二区三区| 91蜜桃免费观看视频| 亚洲一区二区精品视频| 欧美日韩夫妻久久| 精品亚洲porn| 国产精品久久久一本精品 | 亚洲综合激情小说| 欧美一区二区成人| 国产一区二区三区视频在线播放| 国产视频一区二区在线| voyeur盗摄精品| 亚洲一区二区在线观看视频| 欧美一级xxx| 国产成人一区二区精品非洲| 中文字幕一区二区三区在线观看| 国产午夜精品在线观看| aa级大片欧美| 午夜精品久久久久久不卡8050| 欧美成人vps| 91在线免费看| 青青草国产精品亚洲专区无| 欧美极品aⅴ影院| 欧美日韩亚洲另类| 国产精品一卡二| 一区二区三区成人在线视频| 欧美一区二区三区喷汁尤物| 成人丝袜高跟foot| 日韩激情一二三区| 日本一区二区在线不卡| 欧美久久久久久久久中文字幕| 国产在线精品一区二区| 亚洲一区二区在线免费看| 精品国产麻豆免费人成网站| 色综合久久综合| 韩国av一区二区| 亚洲精品久久7777| 久久综合色鬼综合色| 欧美在线播放高清精品| 国产在线精品一区二区夜色 | 在线不卡中文字幕播放| 成人精品高清在线| 蜜臀久久久99精品久久久久久| 亚洲欧美综合色| 欧美mv日韩mv国产网站app| 色哟哟国产精品| 国产传媒久久文化传媒| 日本aⅴ精品一区二区三区| 亚洲色图另类专区| 久久午夜羞羞影院免费观看| 欧美日韩国产片| gogogo免费视频观看亚洲一| 国内外成人在线视频| 亚洲aⅴ怡春院| 亚洲精品欧美在线| 国产日韩欧美精品一区| 欧美一区二区免费观在线| 在线视频你懂得一区| 不卡的av网站| 国产一区二区不卡| 久久成人免费网站| 午夜成人免费视频| 一区二区三区在线不卡| 国产精品国产三级国产| 精品99久久久久久| 日韩欧美一区二区久久婷婷| 欧美乱妇23p| 欧美日韩一区二区三区四区| 91在线观看地址| 成人av在线播放网站| 国产成人福利片| 激情综合亚洲精品| 裸体一区二区三区| 秋霞电影网一区二区| 亚洲狠狠爱一区二区三区| 亚洲情趣在线观看| 一区视频在线播放| 亚洲欧美在线视频| 中文字幕电影一区| 中文字幕成人av| 国产精品乱码久久久久久 | 成人18视频在线播放| 国产成人在线色| 国产精品一区二区黑丝| 美腿丝袜亚洲综合| 精品一区二区久久久| 极品少妇一区二区三区精品视频| 美女脱光内衣内裤视频久久网站| 青青国产91久久久久久| 免费人成在线不卡| 免费在线观看视频一区| 麻豆国产精品官网| 精品一区二区三区蜜桃| 国产自产高清不卡| 国产一区二区精品久久| 国产成人精品www牛牛影视| 国产成人综合在线观看| 成人免费不卡视频| av亚洲精华国产精华精| 91在线无精精品入口| 色婷婷久久久亚洲一区二区三区| 在线日韩一区二区| 欧美精品精品一区| 国内精品写真在线观看| 国产亚洲午夜高清国产拍精品| 色呦呦国产精品| 91精品国产高清一区二区三区| 欧美色爱综合网| 日韩午夜在线播放| 国产欧美1区2区3区|