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

📄 ceado.h

📁 windows ce开发技巧与实例光盘代码
💻 H
字号:
// CEADO.h: interface for the CCEADO class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_CEADO_H__B616DCF2_E8A5_4F1B_B33A_0090B4C65063__INCLUDED_)
#define AFX_CEADO_H__B616DCF2_E8A5_4F1B_B33A_0090B4C65063__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "comdef.h"
#include "STComError.h"

_COM_SMARTPTR_TYPEDEF(IUnknown, __uuidof(IUnknown));

#import ".\adoce31\adoce31.tlb" rename ("EOF", "A_EOF") rename_namespace ("AdoNS")
#import ".\adoce31\adoxce31.tlb" rename ("EOF", "A_EOF") rename_namespace ("AdoXNS")


#endif // !defined(AFX_CEADO_H__B616DCF2_E8A5_4F1B_B33A_0090B4C65063__INCLUDED_)

class AFX_EXT_CLASS CEADOConnection
{
private:
	LPTSTR m_lpConnectionString;		//连接字符串
	LPTSTR m_lpdbName;					//连接sqlce2数据库时的数据库文件名
	LPTSTR m_lpUser;					//用户名
	LPTSTR m_lpPwd;						//密码
	AdoNS::_ConnectionPtr m_pConnection;

public:
	CEADOConnection();
	~CEADOConnection();
	
	AdoNS::_ConnectionPtr Open(LPCTSTR szConnectString, LPCTSTR szUsername=_T(""), LPCTSTR szPassword=_T(""));	//open a data connection by using a connection string
	AdoNS::_ConnectionPtr OpenDB(LPCTSTR szDBname);		//open a data connection by using a database name
	void Close();	//Close a existed connection
	long BeginTrans();
	long CommitTrans(); 
	long RollbackTrans();

	int ExecuteSQL(LPCTSTR lpSQL);

	inline AdoNS::_ConnectionPtr& GetConnectionPtr() 
	{
		return m_pConnection;	
	}

	inline BOOL IsConnected() 
	{
		return (m_pConnection->State == AdoNS::adStateOpen);
	}

};


class AFX_EXT_CLASS CEADORecordset
{
private:
	
	AdoNS::_ConnectionPtr m_pConnection;	//connection to a database
	AdoNS::_RecordsetPtr m_pRecordset;		//recordset that all operation need

public:

	CEADORecordset();
	
	CEADORecordset(AdoNS::_ConnectionPtr& connectionPtr);	//constructor for using a existed connection
	
	~CEADORecordset();

	CEADORecordset(const CEADORecordset& adoRs);		//copy contrustor

	CEADORecordset& operator=(const CEADORecordset& adoRs);		//assignment operator

	BOOL PutConnection(AdoNS::_ConnectionPtr& connectionPtr);	//put a connection with it
	
	BOOL MoveNext();	
	BOOL MoveFirst();
	BOOL MovePrev();
	BOOL MoveLast();
	BOOL Open(LPCTSTR szSQLString, enum AdoNS::CursorTypeEnum eCursorType=AdoNS::adOpenForwardOnly,
		enum AdoNS::LockTypeEnum eLockType=AdoNS::adLockReadOnly,
		enum AdoNS::CommandEnum eOptions=AdoNS::adCmdText);

	int	 OpenEx(LPCTSTR szSQLString, enum AdoNS::CursorTypeEnum eCursorType=AdoNS::adOpenForwardOnly,
		enum AdoNS::LockTypeEnum eLockType=AdoNS::adLockReadOnly,
		enum AdoNS::CommandEnum eOptions=AdoNS::adCmdText);

	BOOL IsLast();
	BOOL IsFirst();
	BOOL IsRecordsetNULL();
	
	void Close();
	
	long GetRecordCount();
	long GetFieldCount();
	
	_variant_t GetFieldValue(LPCTSTR lpFieldName);	
	_variant_t GetFieldValue(int nIndex);

	BOOL			GetFieldBoolValue(LPCTSTR lpFieldName);
	CString			GetFieldCStringValue(LPCTSTR lpFieldName);
	long			GetFieldLongValue(LPCTSTR lpFieldName);
	double			GetFieldDoubleValue(LPCTSTR lpFieldName);
	float			GetFieldFloatValue(LPCTSTR lpFieldName);
	COleDateTime	GetFieldDateValue(LPCTSTR lpFieldName);
	BSTR			GetFieldBSTRValue(LPCTSTR lpFieldName);

	BOOL GetFieldValue(LPCTSTR lpFieldName, CString& str);	//get all data type

	BOOL GetFieldvalue(LPCTSTR lpFieldName, long& nReturnvalue);
	BOOL GetFieldvalue(LPCTSTR lpFieldName, double& nReturnvalue);
	BOOL GetFieldvalue(LPCTSTR lpFieldName, CString& strReturnvalue);
	BOOL GetFieldvalue(LPCTSTR lpFieldName, COleDateTime& dtReturnvalue);

	BOOL IsFieldNULL(LPCTSTR lpFieldName);
	
	inline BOOL IsOpened() {
		return (m_pRecordset->State == AdoNS::adStateOpen);
	}
		
};

class AFX_EXT_CLASS CEADOXCatalog {
private:
	AdoXNS::_CatalogPtr m_pCatalog;
	
	LPTSTR m_lpConnectionString;
	LPTSTR m_lpDatabaseName;
	LPTSTR m_Username;
	LPTSTR m_Password;

public:
	CEADOXCatalog();
	~CEADOXCatalog();

	BOOL Open(LPCTSTR lpstrConnection, LPCTSTR lpUsername=_T(""), LPCTSTR lpPassword=_T(""));
	BOOL CreateDatabase(LPCTSTR lpDBName);
	BOOL AddTable(AdoXNS::_TablePtr &pTable);

	inline AdoXNS::_CatalogPtr& getCatalog() {
		return m_pCatalog;
	}
};

class AFX_EXT_CLASS CEADOXTable {
/*
enum DataTypeEnum
{
    adBigInt = 20,
    adBinary = 128,
    adBoolean = 11,
    adBSTR = 8,
    adChar = 129,
    adCurrency = 6,
    adDate = 7,
    adDBDate = 133,
    adDBTime = 134,
    adDBTimeStamp = 135,
    adDecimal = 14,
    adDouble = 5,
    adEmpty = 0,
    adError = 10,
    adGUID = 72,
    adIDispatch = 9,
    adInteger = 3,
    adIUnknown = 13,
    adLongVarBinary = 205,
    adLongVarChar = 201,
    adLongVarWChar = 203,
    adNumeric = 131,
    adSingle = 4,
    adSmallInt = 2,
    adTinyInt = 16,
    adUnsignedBigInt = 21,
    adUnsignedInt = 19,
    adUnsignedSmallInt = 18,
    adUnsignedTinyInt = 17,
    adUserDefined = 132,
    adVarBinary = 204,
    adVarChar = 200,
    adVariant = 12,
    adVarWChar = 202,
    adWChar = 130
};
*/
private:
	AdoXNS::_TablePtr m_pTable;
	AdoXNS::_CatalogPtr m_pCatalog;
public:
	CEADOXTable();
	CEADOXTable(AdoXNS::_CatalogPtr &pCatalog);
	~CEADOXTable();

	BOOL CreateTable(LPCTSTR lpTablename);
	BOOL AddField(LPCTSTR lpFieldname, AdoXNS::DataTypeEnum eDataType, int nLength);

	inline AdoXNS::_TablePtr& getTable() {
		return m_pTable;
	}
};

⌨️ 快捷键说明

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