⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adopack.h

📁 ADO封装类
💻 H
📖 第 1 页 / 共 2 页
字号:
#pragma once
#include <math.h>
#include <icrsint.h>


#import "C:\Program Files\Common Files\System\ADO\msado15.dll" rename("EOF", "EndOfFile")
#import "C:\Program Files\Common Files\System\ado\MSJRO.DLL" no_namespace
using namespace ADODB;



namespace adoPack 
{
	CString IntToStr(int nVal);
	CString LongToStr(long lVal);
	CString ULongToStr(unsigned long ulVal);
	CString DblToStr(double dblVal, int ndigits = 20);
	CString DblToStr(float fltVal);
	void	DumpComError(_com_error &e);



	struct CADOFieldInfo
	{
		char	m_strName[30]; 
		short	m_nType;
		long	m_lSize; 
		long	m_lDefinedSize;
		long	m_lAttributes;
		short	m_nOrdinalPosition;
		BOOL	m_bRequired;   
		BOOL	m_bAllowZeroLength; 
		long	m_lCollatingOrder;  
	};



	class ADOEXPORT CJetEngine
	{
	public:
		CJetEngine()	{}
		virtual ~CJetEngine()	{}
		static BOOL CCompactDatabase(CString strDatabaseSource, CString strDatabaseDestination);
	};



	/************************************************************************/
	/* CADOConnection 数据库连接类
	/************************************************************************/
	class ADOEXPORT CADOConnection
	{
	public:
		enum cadoConnectModeEnum
		{	
			connectModeUnknown = adModeUnknown,
			connectModeRead = adModeRead,
			connectModeWrite = adModeWrite,
			connectModeReadWrite = adModeReadWrite,
			connectModeShareDenyRead = adModeShareDenyRead,
			connectModeShareDenyWrite = adModeShareDenyWrite,
			connectModeShareExclusive = adModeShareExclusive,
			connectModeShareDenyNone = adModeShareDenyNone
		};

		CADOConnection();
		virtual ~CADOConnection();

		_ConnectionPtr GetActiveConnection();
		BOOL	OpenConnection(LPCTSTR lpstrConnection = _T(""), LPCTSTR lpstrUserID = _T(""), LPCTSTR lpstrPassword = _T(""));
		void	CloseConnection();
		BOOL	IsConnectionOpened();

		BOOL	ExecuteSQL(LPCTSTR lpstrExec);		//执行不返回记录集的SQL语句
		int		GetRecordsAffected();				//获取执行结果所影响的行数
		DWORD	GetRecordCount(_RecordsetPtr pRS);	//获取pRS记录集中的记录个数

		long	BeginTransaction(); 
		long	CommitTransaction(); 
		long	RollbackTransaction() ;

		void	SetConnectionMode(cadoConnectModeEnum nMode);
		void	SetConnectionString(LPCTSTR lpstrConnection);
		CString GetConnectionString();
		void	SetConnectionTimeout(long nConnectionTimeout = 30);

		CString GetLastErrorString(); 
		DWORD	GetLastError();
		CString GetErrorDescription() ;

	public:
		_ConnectionPtr m_pConn;

	protected:
		CString m_strConnection;
		CString m_strLastError;
		CString m_strErrorDescription;
		DWORD	m_dwLastError;
		int		m_nRecordsAffected;
		long	m_nConnectionTimeout;
	};

	inline int  CADOConnection::GetRecordsAffected()		{return m_nRecordsAffected;}
	inline long CADOConnection::BeginTransaction()		{return m_pConn->BeginTrans();};
	inline long CADOConnection::CommitTransaction()		{return m_pConn->CommitTrans();};
	inline long CADOConnection::RollbackTransaction()		{return m_pConn->RollbackTrans();};
	inline void CADOConnection::SetConnectionMode(cadoConnectModeEnum nMode)	{m_pConn->PutMode((enum ConnectModeEnum)nMode);};
	inline void CADOConnection::SetConnectionString(LPCTSTR lpstrConnection)	{m_strConnection = lpstrConnection;};
	inline CString CADOConnection::GetConnectionString()	{return m_strConnection;};
	inline CString CADOConnection::GetLastErrorString()	{return m_strLastError;};
	inline DWORD   CADOConnection::GetLastError()	{return m_dwLastError;};
	inline CString CADOConnection::GetErrorDescription()	{return m_strErrorDescription;};
	inline void    CADOConnection::SetConnectionTimeout(long nConnectionTimeout /*= 30*/)	{m_nConnectionTimeout = nConnectionTimeout;};
	inline _ConnectionPtr CADOConnection::GetActiveConnection()	{return m_pConn;};







	/************************************************************************/
	/* CADORecordset 记录集类
	/************************************************************************/
	class CADOCommand;
	class ADOEXPORT CADORecordset
	{
	public:	
		enum cadoOpenEnum
		{
			openUnknown = 0,
			openQuery = 1,
			openTable = 2,
			openStoredProc = 3
		};

		enum cadoEditEnum
		{
			dbEditNone = 0,
			dbEditNew = 1,
			dbEdit = 2
		};

		enum cadoPositionEnum
		{

			positionUnknown = -1,
			positionBOF = -2,
			positionEOF = -3
		};

		enum cadoSearchEnum
		{	
			searchForward = 1,
			searchBackward = -1
		};

		enum cadoDataType
		{
			typeEmpty					= ADODB::adEmpty,
			typeTinyInt					= ADODB::adTinyInt,
			typeSmallInt				= ADODB::adSmallInt,
			typeInteger					= ADODB::adInteger,
			typeBigInt					= ADODB::adBigInt,
			typeUnsignedTinyInt			= ADODB::adUnsignedTinyInt,
			typeUnsignedSmallInt		= ADODB::adUnsignedSmallInt,
			typeUnsignedInt				= ADODB::adUnsignedInt,
			typeUnsignedBigInt			= ADODB::adUnsignedBigInt,
			typeSingle					= ADODB::adSingle,
			typeDouble					= ADODB::adDouble,
			typeCurrency				= ADODB::adCurrency,
			typeDecimal					= ADODB::adDecimal,
			typeNumeric					= ADODB::adNumeric,
			typeBoolean					= ADODB::adBoolean,
			typeError					= ADODB::adError,
			typeUserDefined				= ADODB::adUserDefined,
			typeVariant					= ADODB::adVariant,
			typeIDispatch				= ADODB::adIDispatch,
			typeIUnknown				= ADODB::adIUnknown,
			typeGUID					= ADODB::adGUID,
			typeDate					= ADODB::adDate,
			typeDBDate					= ADODB::adDBDate,
			typeDBTime					= ADODB::adDBTime,
			typeDBTimeStamp				= ADODB::adDBTimeStamp,
			typeBSTR					= ADODB::adBSTR,
			typeChar					= ADODB::adChar,
			typeVarChar					= ADODB::adVarChar,
			typeLongVarChar				= ADODB::adLongVarChar,
			typeWChar					= ADODB::adWChar,
			typeVarWChar				= ADODB::adVarWChar,
			typeLongVarWChar			= ADODB::adLongVarWChar,
			typeBinary					= ADODB::adBinary,
			typeVarBinary				= ADODB::adVarBinary,
			typeLongVarBinary			= ADODB::adLongVarBinary,
			typeChapter					= ADODB::adChapter,
			typeFileTime				= ADODB::adFileTime,
			typePropVariant				= ADODB::adPropVariant,
			typeVarNumeric				= ADODB::adVarNumeric,
			typeArray					= ADODB::adVariant
		};

		enum cadoSchemaType 
		{
			schemaSpecific				= adSchemaProviderSpecific,	
			schemaAsserts				= adSchemaAsserts,
			schemaCatalog				= adSchemaCatalogs,
			schemaCharacterSet			= adSchemaCharacterSets,
			schemaCollections			= adSchemaCollations,
			schemaColumns				= adSchemaColumns,
			schemaConstraints			= adSchemaCheckConstraints,
			schemaConstraintColumnUsage = adSchemaConstraintColumnUsage,
			schemaConstraintTableUsage  = adSchemaConstraintTableUsage,
			shemaKeyColumnUsage			= adSchemaKeyColumnUsage,
			schemaTableConstraints		= adSchemaTableConstraints,
			schemaColumnsDomainUsage	= adSchemaColumnsDomainUsage,
			schemaIndexes				= adSchemaIndexes,
			schemaColumnPrivileges		= adSchemaColumnPrivileges,
			schemaTablePrivileges		= adSchemaTablePrivileges,
			schemaUsagePrivileges		= adSchemaUsagePrivileges,
			schemaProcedures			= adSchemaProcedures,
			schemaTables				=adSchemaTables,
			schemaProviderTypes			= adSchemaProviderTypes,
			schemaViews					= adSchemaViews,
			schemaProcedureParameters	= adSchemaProcedureParameters,
			schemaForeignKeys			= adSchemaForeignKeys,
			schemaPrimaryKeys			= adSchemaPrimaryKeys,
			schemaProcedureColumns		= adSchemaProcedureColumns,
			schemaDBInfoKeywords		= adSchemaDBInfoKeywords,
			schemaDBInfoLiterals		= adSchemaDBInfoLiterals,
			schemaCubes					= adSchemaCubes,
			schemaDimensions			= adSchemaDimensions,
			schemaHierarchies			= adSchemaHierarchies, 
			schemaLevels				= adSchemaLevels,
			schemaMeasures				= adSchemaMeasures,
			schemaProperties			= adSchemaProperties,
			schemaMembers				= adSchemaMembers,
		}; 

	public:
		CADORecordset();
		CADORecordset(CADOConnection* pDB);
		virtual ~CADORecordset();


		BOOL SetFieldEmpty(int nIndex);
		BOOL SetFieldValue(int nIndex, int nValue);
		BOOL SetFieldValue(int nIndex, long lValue);
		BOOL SetFieldValue(int nIndex, unsigned long lValue);
		BOOL SetFieldValue(int nIndex, double dblValue);
		BOOL SetFieldValue(int nIndex, CString strValue);
		BOOL SetFieldValue(int nIndex, COleDateTime time);
		BOOL SetFieldValue(int nIndex, bool bValue);
		BOOL SetFieldValue(int nIndex, COleCurrency cyValue);
		BOOL SetFieldValue(int nIndex, _variant_t vtValue);
		BOOL SetFieldEmpty(LPCTSTR lpFieldName);
		BOOL SetFieldValue(LPCTSTR lpFieldName, int nValue);
		BOOL SetFieldValue(LPCTSTR lpFieldName, long lValue);
		BOOL SetFieldValue(LPCTSTR lpFieldName, unsigned long lValue);
		BOOL SetFieldValue(LPCTSTR lpFieldName, double dblValue);
		BOOL SetFieldValue(LPCTSTR lpFieldName, CString strValue);
		BOOL SetFieldValue(LPCTSTR lpFieldName, COleDateTime time);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -