亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sqlsetx.h

?? 讀取oracle的blob數據. 數據庫連接以ODBC連接.
?? H
字號:
// SQLSet.h: interface for the CSQLSetX class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_SQLSETX_H__389F1EE6_21F6_11D3_9EEB_0000E8509A6A__INCLUDED_)
#define AFX_SQLSETX_H__389F1EE6_21F6_11D3_9EEB_0000E8509A6A__INCLUDED_

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

#include "DatabaseX.h"
#include "MyBArray.h"
#define MAXBUFFER 1024*1024

class  CSQLSetX : public CObject
{
public:
	CSQLSetX(CDatabaseX* pdatabase = NULL);
	virtual ~CSQLSetX();

	enum OpenType
	{
		dynaset,        // uses SQLExtendedFetch, keyset driven cursor
		snapshot,       // uses SQLExtendedFetch, static cursor
		forwardOnly,    // uses SQLFetch
		dynamic         // uses SQLExtendedFetch, dynamic cursor
	};

	enum OpenOptions
	{
		none =                      0x0,
		readOnly =                  0x0004,
		appendOnly =                0x0008,
		skipDeletedRecords =        0x0010, // turn on skipping of deleted records, Will slow Move(n).
		noDirtyFieldCheck =         0x0020, // disable automatic dirty field checking
		useBookmarks =              0x0100, // turn on bookmark support
		useMultiRowFetch =          0x0200, // turn on multi-row fetch model
		userAllocMultiRowBuffers =  0x0400, // if multi-row fetch on, user will alloc memory for buffers
		useExtendedFetch =          0x0800, // use SQLExtendedFetch with forwardOnly type recordsets
		executeDirect =             0x2000, // Directly execute SQL rather than prepared execute
		optimizeBulkAdd =           0x4000, // Use prepared HSTMT for multiple AddNews, dirty fields must not change.
		firstBulkAdd =              0x8000, // INTERNAL to MFC, don't specify on Open.
	};
	enum LockMode
	{
		optimistic,
		pessimistic,
	};

public:
	CDatabaseX* pDatabase;
	BOOL CloseBindLong;
	void VerifyDriverBehavior();
	DWORD VerifyCursorSupport();
	void SetUpdateMethod();
	void SetConcurrencyAndCursorType(HSTMT hstmt, DWORD dwScrollOptions);

	void replace(char *from);

public:
	BOOL readLongThisTime();
	BOOL RePosAfterDeleteOrUpdate(int re, int oldrec);
	BOOL SkipRecord(int org, int irr);
	BOOL SkipBackward(int nrec);
	BOOL SkipForward(int nrec);
	void CloseReadStmt();
	void CloseUpdateStmt();
	BOOL setLongBinary(int iCol, char *fname);
	BOOL getLongBinary(int iCol);
	BOOL StopGetData;
	virtual void EndOfUpdate();
	virtual int SetDummyColumns(int startColumn, int nColumns);
	BOOL IsEOF();
	int MoveNext(int irr);
	BOOL MoveFirst(int irr);
	BOOL MoveLast(int irr);
	BOOL MovePrev(int irr);

	virtual BOOL Open(char *, int irr=0);
	virtual void Close();
	int ReadNext(SQLSMALLINT org=NULL, int irr=0);
	int AddNew();
	int Modify();
	int Delete();

	int Update();
	BOOL IsOpen();
	BOOL IsEof();

	BOOL Check(RETCODE nRetCode) const;


	CStringArray m_strName;		//字符串名字
	CStringArray m_strType;		//原始類型
	CStringArray m_strTable;	//原始表

	DWORD m_dwOptions;          // archive dwOptions on Open
	BOOL m_bUseUpdateSQL;   // uses SQL-based updates
	BOOL m_bUpdatable;      // Is recordset updatable?
	UDWORD m_dwConcurrency; // requested concurrency type
	BOOL m_bAppendable;
	UDWORD m_dwDriverConcurrency;   // driver supported concurrency types
	BOOL m_nLockMode;       // Control concurrency for Edit()
	BOOL m_bScrollable; // supports MovePrev
	BOOL m_bCheckCacheForDirtyFields;   // switch for dirty field checking

	void SetState(int nOpenType, LPCTSTR lpszSQL, DWORD dwOptions);
	int m_currentRecNo;
	BOOL m_noReadLong;
	BOOL m_isAutoInc[256];

protected:
	UINT m_nOpenType;
	UINT m_nDefaultType;

	SQLHSTMT		m_readHstmt;
	SQLHSTMT		m_updateHstmt;
	SQLSMALLINT		m_nColumn;

	CStringArray m_Name;		//帶[]號的名字
	CPtrArray	m_Value;
	CUIntArray	m_Width;
	CUIntArray	m_Type;
	CDWordArray	m_dataLen;
	
	SDWORD		inLen[256];
	char        bit[8192];
	char        work[4096];
	void		*dataptr;
	long     cbData, nchar;
	long     opcode;
	UCHAR szCursor[30];
	SWORD szCursorLen;

	SQLSMALLINT	Nullable[256];
	SQLINTEGER	StrLen_or_IndPtr[256];
	SQLINTEGER	oStrLen_or_IndPtr[256];
	BOOL nullField[256];
	//used for SetFX_
	SQLSMALLINT	m_fld_c_type[256];
	char		m_fld_name[256][64];
	void	   *m_fld_ptr[256]; 
	int		m_col;
	HFILE h;
	OFSTRUCT	of;
	int m_irr;
	 
	CString deleteSql;
	CString strSQL;
	CString selSql;
	CString insSql;
	CString updateSql;
	CString strTable;
	CString strFields; //select 后面的字段列表

	BOOL isOpen,isAdd;
	BOOL isEOF, isBOF;
	BOOL hasLongB;

protected:
	void ResetInit();
	int OutPutBind(CString &runSql);
	int OutPutBindEx(CString &runSql, int IdVar);

	BOOL tell_me_error(SQLHSTMT hstmt);
	BOOL reOpen();

	//
	virtual void OnSetOptions(HSTMT hstmt);
	virtual void DoFieldExchange(CFieldExchange* pFX);
	virtual	CString GetDefaultSQL();

	//
	BOOL SetFX_Test(LPCTSTR szName);

	void SetFX_Text(LPCTSTR szName,	char *  value);
	void SetFX_Text(LPCTSTR szName,	CString& value);
	void SetFX_Text(LPCTSTR szName,	LPCTSTR value);

	void SetFX_Int(LPCTSTR szName, int& value);
	void SetFX_Long(LPCTSTR szName, long& value);
	void SetFX_Real(LPCTSTR szName, float & value);
	void SetFX_Double(LPCTSTR szName, double & value);

	void SetFX_Binary(LPCTSTR szName, CMyByteArray& value);
	void SetFX_Date(LPCTSTR szName, CTime& value);
	void SetFX_Date(LPCTSTR szName,	TIMESTAMP_STRUCT& value);
	void SetFX_LongBinary(LPCTSTR szName,	CLongBinary& value);
	void SetFX_Byte(LPCTSTR szName, BYTE& value);
	void SetFX_Bool(LPCTSTR szName, BOOL& value);

	BOOL	to_user_Bool(int);				
	BOOL	to_user_Byte(int);
	BOOL	to_user_Short(int);
	BOOL	to_user_Long(int);
	BOOL	to_user_Float(int);
	BOOL	to_user_Double(int);
	BOOL	to_user_Date(int);
	BOOL	to_user_Time(int);
	BOOL	to_user_TimeStamp(int);
	BOOL	to_user_Char(int);
	BOOL	to_user_String(int);
	BOOL	to_user_ByteArray(int);
	BOOL	to_user_CharDec(int);

	BOOL	To_Bool(int);				
	BOOL	To_Byte(int);
	BOOL	To_Short(int);
	BOOL	To_Long(int);
	BOOL	To_Float(int);
	BOOL	To_Double(int);
	BOOL	To_Date(int);
	BOOL	To_Time(int);
	BOOL	To_TimeStamp(int);
	BOOL	To_Char(int);
	BOOL	To_String(int);
	BOOL	To_ByteArray(int);
	BOOL	to_CharDec(int i);

	BOOL dummy_to_Bool(int i);
	BOOL dummy_to_Byte(int i);
	BOOL dummy_to_Short(int i);
	BOOL dummy_to_Long(int i);
	BOOL dummy_to_Float(int i);
	BOOL dummy_to_Double(int i);
	BOOL dummy_to_Date(int i);
	BOOL dummy_to_Time(int i);
	BOOL dummy_to_TimeStamp(int i);
	BOOL dummy_to_Char(int i);
	BOOL dummy_to_String(int i);
	BOOL dummy_to_ByteArray(int i);


	SDWORD  to_user_Get_data(int , char*, int);
	SDWORD  To_Get_data(int , char*, int);
protected:
	friend class CBatchAdd;
	friend class CDataIn;


};

#endif // !defined(AFX_SQLSETX_H__389F1EE6_21F6_11D3_9EEB_0000E8509A6A__INCLUDED_)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
视频一区二区欧美| 欧美日韩视频在线第一区 | 91麻豆精品国产综合久久久久久| 99久久久久久| 裸体在线国模精品偷拍| 国产精品久久福利| 狠狠色综合日日| 久久精品国产亚洲aⅴ| 美女一区二区三区在线观看| 日韩精品电影一区亚洲| 蜜臀久久99精品久久久久宅男 | 午夜精品久久久久久久蜜桃app| 亚洲色图欧洲色图| 亚洲午夜激情av| 日本欧美一区二区| 国产精选一区二区三区| 99国产精品久| 欧美日韩亚洲丝袜制服| 日韩欧美国产三级电影视频| 国产人久久人人人人爽| 久久精品久久综合| 久久五月婷婷丁香社区| 欧美少妇一区二区| 91精品国产高清一区二区三区蜜臀| 欧美一级免费观看| 国产精品视频一二三| 亚洲黄色片在线观看| 日本亚洲一区二区| 成人影视亚洲图片在线| 在线一区二区观看| 亚洲精品一区二区三区影院| 国产精品嫩草99a| 亚洲成人自拍偷拍| 国产99一区视频免费| 欧美性感一类影片在线播放| 精品粉嫩aⅴ一区二区三区四区| 综合久久久久久| 日韩精品久久久久久| 成人av在线一区二区| 91精品国产综合久久香蕉的特点| 国产日韩欧美麻豆| 日韩精品91亚洲二区在线观看| 国产高清亚洲一区| 69精品人人人人| 亚洲免费av网站| 国产美女精品在线| 69堂精品视频| 一区二区三区四区视频精品免费| 国产一区二区导航在线播放| 欧美久久一二区| 综合久久久久久| 成人一区二区三区视频在线观看| 日韩一级黄色大片| 一区二区三区高清在线| 夫妻av一区二区| 久久久久久久网| 美女一区二区在线观看| 欧美精三区欧美精三区| 亚洲男同性恋视频| 成人午夜视频福利| 久久久欧美精品sm网站| 久久精品av麻豆的观看方式| 欧美午夜精品一区二区三区| 中文字幕制服丝袜一区二区三区| 国产中文字幕精品| 精品sm在线观看| 狠狠色丁香婷婷综合| 日韩一区二区视频| 日本免费在线视频不卡一不卡二 | 亚洲一区二区三区四区的| av不卡免费电影| 国产精品国产三级国产普通话蜜臀| 国内久久婷婷综合| 欧美mv日韩mv| 激情另类小说区图片区视频区| 欧美一区二区三区精品| 日本麻豆一区二区三区视频| 制服丝袜亚洲色图| 免费观看久久久4p| 欧美日韩一区二区在线观看| 欧美男男青年gay1069videost| 成人午夜在线视频| 国产精品蜜臀在线观看| 国产91在线观看| 国产精品国产自产拍在线| 成人久久18免费网站麻豆| 国产精品卡一卡二卡三| 97se亚洲国产综合在线| 一区二区成人在线观看| 欧美性生活一区| 日本亚洲视频在线| 久久精品免费在线观看| 不卡视频一二三四| 亚洲一区在线看| 欧美一二三四区在线| 国产精品538一区二区在线| 中文成人综合网| 日本韩国欧美在线| 麻豆传媒一区二区三区| 久久精品人人爽人人爽| 91网站在线播放| 天天综合网 天天综合色| 亚洲综合丝袜美腿| 一区二区三区四区蜜桃| 91欧美一区二区| 亚洲狼人国产精品| 欧美日韩日本视频| 久久精品国产秦先生| 中文一区二区在线观看| 欧美日韩一区三区| 国产一区二区三区av电影| 中文字幕一区二区不卡| 7777精品久久久大香线蕉| 国产乱码一区二区三区| 亚洲高清视频在线| 欧美激情艳妇裸体舞| 欧美日韩另类一区| 成人激情av网| 卡一卡二国产精品 | 美腿丝袜在线亚洲一区| 国产精品美女久久久久久久| 欧美福利视频导航| 91在线视频免费91| 欧美亚洲高清一区| 亚洲六月丁香色婷婷综合久久| 91亚洲国产成人精品一区二三| 五月天亚洲婷婷| 综合分类小说区另类春色亚洲小说欧美| 欧美电影在线免费观看| 91在线国内视频| 国产电影一区在线| 青青草精品视频| 亚洲国产中文字幕在线视频综合| 国产亚洲欧洲997久久综合| 91精品国产综合久久精品麻豆| 97国产精品videossex| 国产乱对白刺激视频不卡| 免费在线看成人av| 亚洲h动漫在线| 一个色妞综合视频在线观看| 亚洲欧洲在线观看av| 国产日韩精品一区二区浪潮av| 日韩欧美美女一区二区三区| 欧美久久久久免费| 欧美日韩国产乱码电影| 色婷婷av一区二区三区gif| 99久久精品久久久久久清纯| 精品一区二区三区日韩| 麻豆国产欧美一区二区三区| 日韩av网站在线观看| 日产欧产美韩系列久久99| 亚洲国产精品一区二区www在线| 亚洲美女视频在线观看| 亚洲欧洲制服丝袜| 一区二区在线观看不卡| 亚洲女人的天堂| 亚洲图片欧美色图| 五月婷婷久久综合| 日韩成人免费看| 久久国产精品露脸对白| 国内精品伊人久久久久影院对白| 蜜桃久久av一区| 韩国av一区二区三区四区| 国产自产高清不卡| av中文一区二区三区| 91高清在线观看| 欧美日本一区二区在线观看| 日韩一区和二区| 久久青草国产手机看片福利盒子| 久久精品夜色噜噜亚洲aⅴ| 中文字幕亚洲欧美在线不卡| 亚洲免费视频成人| 视频一区在线视频| 国产精品一区二区久激情瑜伽| 成人深夜在线观看| 欧美在线一区二区| 欧美成人一区二区三区片免费 | 色综合久久88色综合天天6| 在线观看网站黄不卡| 欧美大尺度电影在线| 国产精品理论在线观看| 亚洲成a人v欧美综合天堂下载| 美腿丝袜亚洲一区| 99久久亚洲一区二区三区青草| 欧美日韩国产天堂| 国产欧美一区二区三区在线看蜜臀| 亚洲欧美日韩国产综合| 欧美a级理论片| 94-欧美-setu| 欧美成人猛片aaaaaaa| 成人免费在线观看入口| 免费久久99精品国产| 91免费看`日韩一区二区| 欧美一级日韩一级| 亚洲精品亚洲人成人网 | 久久青草国产手机看片福利盒子| 一区二区三区在线视频观看 | 欧美国产精品劲爆| 亚洲福利视频导航| 成人高清av在线|