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

📄 hopekingrecordset.h

📁 一个多线程
💻 H
字号:
#if !defined(AFX_HOPEKINGRECORDSET_H__C7D3515A_2D09_431D_82C2_EC6F991E73C6__INCLUDED_)
#define AFX_HOPEKINGRECORDSET_H__C7D3515A_2D09_431D_82C2_EC6F991E73C6__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// HopeKingRecordset.h : header file
//
#include "unibus.h"

#define SQLTEXT 			0x23
#define SQLVARBINARY		0x25
#define SQLINTN 			0x26
#define SQLVARCHAR			0x27
#define SQLBINARY			0x2d
#define SQLIMAGE			0x22
#define SQLCHARACTER		0x2f
#define SQLINT1 			0x30
#define SQLBIT				0x32
#define SQLINT2 			0x34
#define SQLINT4 			0x38
#define SQLMONEY			0x3c
#define SQLDATETIME 		0x3d
#define SQLFLT8 			0x3e
#define SQLFLTN 			0x6d
#define SQLMONEYN			0x6e
#define SQLDATETIMN 		0x6f
#define SQLFLT4 			0x3b
#define SQLMONEY4			0x7a
#define SQLDATETIM4 		0x3a
#define SQLDECIMAL			0x37
#define SQLDECIMALN			0x6a
#define SQLNUMERIC			0x3f
#define SQLNUMERICN 		0x6c

/////////////////////////////////////////////////////////////////////////////
// CHopeKingRecordset recordset

union ODBCDATA{
	CString	* m_pString;
	BYTE	* m_pByte;
	int		* m_pInt;
	float	* m_pFloat;
	double	* m_pDouble;
	CTime	* m_pTime;
	CByteArray	* m_pByteArray;
	CLongBinary	* m_pLongBinary;
	BOOL	* m_pBool;
	long	* m_pLong;
};

/*
//excute sql flags
const nWantResult					0x10000
const nNoResult						0x00000
//excute sql flags
const nPamTypePointed				0x20000
const nPamTypeNopointed				0x00000
//excute sql flags
const nNoReturn						0x40000
const nNeedReturn					0x00000
//excute sql flags
const nProcedureName				0x0000
const nTableName					0x1000
const nSqlClause					0x2000

//table move flags
const nMoveFirst					0
const nMoveLast						1
const nMoveNext						2
const nMovePrev						3

*/
//CFieldExchange::outputColumn,0
//CFieldExchange::inputParam,1
//CFieldExchange::param,2
//CFieldExchange::outputParam,3
//CFieldExchange::inoutParam,4

class COdbcData{
public:
	COdbcData(){m_iType=-1;m_Data.m_pByte=NULL;m_iFieldType=0;m_szName=NULL;};
	~COdbcData(){ClearData();};
	ODBCDATA m_Data;
	short int m_iType;
	short int m_iFieldType;
	char * m_szName;
	void SetFieldType(int iftype){
		m_iFieldType=iftype;
	};
	void SetName(LPCTSTR lpszName){
	}
	void SetType(int itype);
	void ClearData();
	void SetValue(UniVar & uv,int type=-1);
	void GetValue(UniVar & uv);
};

class CHopeKingRecordset : public CRecordset,public CAsynWorker
{
public:
	CHopeKingRecordset(CDatabase* pDatabase = NULL);
	~CHopeKingRecordset(){RealCloseSql();};
	DECLARE_DYNAMIC(CHopeKingRecordset)

// Field/Param Data
	//{{AFX_FIELD(CHopeKingRecordset, CRecordset)
	//}}AFX_FIELD

	int m_iCmdType,m_iPreDefColNum,m_iParamNum,m_iMaxDefaultColumns,m_iMaxDefaultParam;
	BOOL m_bHasRet;
	COdbcData m_Ret;
	COdbcData * m_pDefaultColum;
	COdbcData * m_pParam;
	BOOL SetFileExchange(CFieldExchange* pFX,COdbcData & Data,BOOL bSet=FALSE);
	BOOL ExcuteSql(LPCTSTR lpszSql,int iCmdType);
	void CloseSql();
	void RealCloseSql();
	void SetParaNum(int);
	void SetParamValue(int idex,LPCTSTR lpszValue);
	void SetParamValue(int idex,int iValue);
	void SetParamValue(int idex,bool bValue);
	void SetParamValue(int idex,long lValue);
	void SetParamValue(int idex,float fValue);
	void SetParamValue(int idex,double dValue);
	void SetParamValue(int idex,BYTE btValue);
	void SetParamValue(int idex,CTime & ctValue);

	CString GetParamValueS(int idex);
	int GetParamValueI(int i);
	void SetParamValue(int idx,UniVar & uv,int type=-1);
	void GetParamValue(int idx,UniVar & uv);

	CString GetResultValueS(int idex);
	int GetResultValueI(int i);
	void GetResultValue(int idx,UniVar & uv);

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CHopeKingRecordset)
	public:
	virtual CString GetDefaultConnect();    // Default connection string
	virtual CString GetDefaultSQL();    // Default SQL for Recordset
	virtual void DoFieldExchange(CFieldExchange* pFX);  // RFX support
	virtual void PreBindFields();   // called before data fields are bound
	//}}AFX_VIRTUAL

// Implementation
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_HOPEKINGRECORDSET_H__C7D3515A_2D09_431D_82C2_EC6F991E73C6__INCLUDED_)

⌨️ 快捷键说明

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