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

📄 database.h

📁 真正的传奇源代码
💻 H
字号:


/*
	Date:
		2002/03/06

	Note:
		Modified Version for Precompiler and Unicode
*/
#ifndef __ORZ_DATABASE__
#define __ORZ_DATABASE__


#include <windows.h>
#include <sql.h>
#include <sqlext.h>


#define DB_MAXBUF	256


class CConnection;
class CRecordset;


/*
	define CDatabase 
*/
class CDatabase
{
protected:
	SQLHENV		m_hEnv;

public:
	CDatabase();
	virtual ~CDatabase();

	bool Init();
	void Uninit();

	void EnumDSN( void (*pfnEnum)( char *pSrcName, char *pSrcDesc ) );

	CConnection * CreateConnection( char *pDSN, char *pID, char *pPassword );
	void DestroyConnection( CConnection *pConn );

public:
	static void SetDiagRec( void (*pfnRecord)( char *pState, int nErrCode, char *pDesc ) );
	static void UnsetDiagRec();
	static void DiagRec( int nHandleType, SQLHANDLE hHandle );
};


/*
	define CConnection 
*/
class CConnection
{
protected:
	SQLHDBC		m_hDBConn;

private:
	CConnection();
	virtual ~CConnection();

	bool Init( SQLHENV hEnv, char *pDSN, char *pID, char *pPassword );
	void Uninit();

public:
	friend CDatabase;

	CRecordset * CreateRecordset();
	void DestroyRecordset( CRecordset *pRec );
};


/*
	define CRecordset 
*/
class CRecordset
{
protected:
	SQLHSTMT	m_hStmt;

	int			m_nRowCount;
	int			m_nCols;

	class CColumnInfo
	{
	public:
		int  nColNameSize;			// 拿烦 捞抚 农扁
		char szColName[DB_MAXBUF];	// 拿烦 捞抚
		int  nColType;				// 拿烦 鸥涝
		int  nColSize;				// 拿烦 农扁
		int  nAllowDecimalDigit;	// 10柳荐 函版 倾侩 咯何
		int  nAllowNull;			// 澄 倾侩 咯何

	public:
		CColumnInfo();
		~CColumnInfo();

	} *m_pColInfo;

	class CColumnData
	{
	public:
		char *pData;				// 单捞磐
		int  nDataSize;				// 鉴荐 单捞磐 农扁 (且寸等 皋葛府 农扁啊 酒丛)

	public:
		CColumnData();
		~CColumnData();

		bool AllocMemory( int nSize );

	} *m_pColData;

private:
	CRecordset();
	virtual ~CRecordset();

	bool Init( SQLHDBC hDBConn );
	void Uninit();

public:
	friend CConnection;
	
	bool Execute( char *pQuery );
	bool Fetch();

	int  GetRowCount();
	int  GetCols();
	char * Get( char *pColName );
	char * Get( int nCol );
	CColumnInfo * GetColInfo( char *pColName );
	CColumnInfo * GetColInfo( int nCol );
};


#endif

⌨️ 快捷键说明

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