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

📄 recset.h

📁 读取oracle的blob数据. 数据库连接以ODBC连接.
💻 H
字号:
// RecSet.h: interface for the CRecSet class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_RECSET_H__12B9A0C5_2399_11D3_9EEB_0000E8509A6A__INCLUDED_)
#define AFX_RECSET_H__12B9A0C5_2399_11D3_9EEB_0000E8509A6A__INCLUDED_

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

#include "SQLSetX.h"

#define SQL_SQL_NCHAR (-8)
#define SQL_SQL_NVARCHAR (-9)
#define SQL_SQL_NTEXT (-10)
#define SQL_ORA_LOB (0)
#define _IS_NO_USE_ 0
#define _IS_EDIT_ 1
#define _IS_VIEW_ 2

#define MAX_REC_NUMBER 1000000000
#define MAXRKEYS 32

class CBaseMeta ;

class CRecSet : public CSQLSetX  
{
public:
	CRecSet(CDatabaseX* pDatabase, char *tableName, char *aliaName);

	virtual ~CRecSet();

public:
	BOOL Open(char *sql);
	BOOL BatchUpdateRelatedTables();
	BOOL BatchDeleteRelatedTables();
	BOOL batchUpdate(CString &where, char *str, char *alia, char *tab,
								   int nf, CString *flds, BYTE *chg, char *ind);
	BOOL batchDelete(CString &where, char *str, char *alia, char *trueName,
							   int nf, CString *flds, char *ind);

	void putRelFldNewData(int ic, char *str);
	BOOL keepRelFieldData(int ir);
	BOOL putData(int icolumn, char *str);
	int getData(int icolumn, int irow, char *str);
	void deleteVars();
	CDatabaseX *m_pDatabase;
	CString    m_aliaTableName;	//假名
	CString    m_trueTableName;	//原始表

	SQLSMALLINT	m_nFields;


	CStringArray m_strName;		//字符串名字
	CStringArray m_Name;		//带[]号的名字
	CStringArray m_strType;		//原始类型
	CStringArray m_strTable;	//原始表

	CPtrArray m_Value;
	CPtrArray m_oValue;
	CUIntArray m_Width;
	CUIntArray m_Type;

	BOOL nullable[256];
	BOOL m_sel[256];
	int  nrow;
	int  rrow;

	CString where;
	CString fldsNotes;
	CString m_strFilter;        // Where clause
	CString m_strSort;      // Order By Clause

	BOOL m_autoReOpen;

	CMyByteArray *pByteArray;
	CString *pStr;
	BOOL *pBool;
	BYTE *pByte;

	TIMESTAMP_STRUCT *ts;
	DATE_STRUCT		 *date;
	TIME_STRUCT		 *time;

	int *pInt;
	long *pLong;
	float *pFloat;
	double *pDouble;
	CBaseMeta *metas[50][256];
	BYTE	chged[256]; 
	char    needGet[256];

	//用于保存记录改变前的"被关联字段"的数据
	int nRelFlds;
	CString		relFldName[MAXRKEYS];
 	CString		relFldOdata[MAXRKEYS];
	CString		relFldNdata[MAXRKEYS];
	BYTE        relFldchanged[MAXRKEYS];

	BYTE    rowIdVar[256];
	BYTE    autoVar[256];
	BYTE    chkVar[256];
	CString defaultValue[256];
	CString keyf[MAXRKEYS];
	int nkf;

// Field/Param Data
	//{{AFX_FIELD(CRecSet, CSQLSet)
	//}}AFX_FIELD

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CRecSet)
	public:
	virtual void DoFieldExchange(CFieldExchange* pFX);	// RFX support
	virtual void OnSetOptions(HSTMT hstmt);
	//}}AFX_VIRTUAL
};

#endif // !defined(AFX_RECSET_H__12B9A0C5_2399_11D3_9EEB_0000E8509A6A__INCLUDED_)

⌨️ 快捷键说明

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