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

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

?? sqlquery.h

?? 數據庫動態查詢
?? H
字號:
// SQLQuery.h: interface for the CSQLQuery class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_SQLQUERY_H__8DC91E9B_037C_11D3_8591_00C0DF240228__INCLUDED_)
#define AFX_SQLQUERY_H__8DC91E9B_037C_11D3_8591_00C0DF240228__INCLUDED_

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

#include <afxtempl.h>

#ifndef __AFXDB_H__
#include <afxdb.h> // for ...
#endif 

class CQueryObject : public CObject
{
	DECLARE_DYNAMIC(CQueryObject)
public:
	CQueryObject();
	CQueryObject(const COleVariant& value);
	virtual ~CQueryObject();
	void RemoveAndDestroy();

    CQueryObject& operator>>(BYTE &value);
    CQueryObject& operator>>(short &);
    CQueryObject& operator>>(int &);
    CQueryObject& operator>>(long &);
    CQueryObject& operator>>(float &);
    CQueryObject& operator>>(double &);
    CQueryObject& operator>>(CY &value);
    CQueryObject& operator>>(COleCurrency &value);
	CQueryObject& operator>>(CTime &value);
	CQueryObject& operator>>(COleDateTime &value);
	CQueryObject& operator>>(CString &value);
	CQueryObject& operator>(CString &value);

	COleVariant		m_value;
};


class CQueryObjectList : public CTypedPtrList<CObList,CQueryObject*>
{
public:
	CQueryObjectList();
	virtual ~CQueryObjectList();

	void RemoveAndDestroy();
	bool eof();
	void InitPosition();

    CQueryObjectList& operator>>(BYTE &value);
    CQueryObjectList& operator>>(short &);
    CQueryObjectList& operator>>(CY &value);
    CQueryObjectList& operator>>(COleCurrency &value);
    CQueryObjectList& operator>>(int &);
    CQueryObjectList& operator>>(long &);
    CQueryObjectList& operator>>(float &);
    CQueryObjectList& operator>>(double &);
	CQueryObjectList& operator>>(TIMESTAMP_STRUCT &value);
	CQueryObjectList& operator>>(CTime &value);
	CQueryObjectList& operator>>(COleDateTime &value);
	CQueryObjectList& operator>>(CString &value);
	CQueryObjectList& operator>(CString &value);

protected:

	POSITION m_pos;
};

inline 
bool CQueryObjectList::eof()
{
	return m_pos == NULL;
}

struct MYBIND
{
	MYBIND()
	{
		memset(this, 0, sizeof(*this));
	}

	TCHAR   szValue[40];
	DWORD   dwStatus;
};

struct MYERRORINFO
{
	BSTR    bstrSource;
	BSTR    bstrDescription;
	DWORD   dwHelpContext;
	GUID    guid;
	BSTR    bstrHelpFile;
};

class CWhyResults
{
public:
	bool UseMultipleResults() { return m_bMultiple; }
	IMultipleResults** GetMultiplePtrAddress() { return m_bMultiple? &m_spMultipleResults.p : NULL; }
	IMultipleResults* GetMultiplePtr() { return m_bMultiple? m_spMultipleResults : NULL; }

	CComPtr<IMultipleResults> m_spMultipleResults;

	bool m_bMultiple;
};

class CQueryCommand : public	CCommand<CDynamicAccessor, CRowset, CWhyResults>
{
public:
	CQueryCommand(bool bMultiple)
	{
	  m_bMultiple = bMultiple;
	}
};

class CMultipleQuery : public	CQueryCommand
{
public:
	CMultipleQuery():CQueryCommand(true){}
};

class CSingleQuery : public CQueryCommand
{
public:
	CSingleQuery():CQueryCommand(false){}
};

class CSQLQuery : public CObject  
{
	DECLARE_DYNAMIC(CSQLQuery)
public:
	CSQLQuery(ATL::CDataSource* pDataSource,bool bShowError = true);
	CSQLQuery(ATL::CDataSource* pDataSource,ATL::CSession* pSession,bool bShowError = true);
	CSQLQuery(ATL::CSession* pSession,bool bShowError = true);
	virtual ~CSQLQuery();

	CString				GetLastError();
	ATL::CSession*		GetSession() const;
	ATL::CDataSource*	GetDataSource() const;
	int					GetDataCount();
	CQueryObjectList&	GetDataList();
	
	UINT			GetColumnsCount();
	void			GetColumns(CStringArray& dest);
	const CString	GetColumnName(int nIndex);


	HRESULT		BeginTrans();
	HRESULT		Abort(BOID* pboidReason = NULL, BOOL bRetaining = FALSE, BOOL bAsync = FALSE) const;
	HRESULT		Commit(BOOL bRetaining = FALSE, DWORD grfTC = XACTTC_SYNC, DWORD grfRM = 0) const;
	
	void AddColumns(LPCSTR lpszCol);
	void ClearColumns();
	bool eof();
	void Empty();
	bool IsExistColumn(LPCSTR lpszCol);
	void RemoveLastComma();
	
	bool ExecuteSQL();
	bool ExecuteSQL(LPCSTR szSQL);
	
	CQueryObject* Get();

    CSQLQuery& operator>>(BYTE &value);
    CSQLQuery& operator>>(short &);
    CSQLQuery& operator>>(CY &value);
    CSQLQuery& operator>>(COleCurrency &value);
    CSQLQuery& operator>>(int &);
    CSQLQuery& operator>>(long &);
    CSQLQuery& operator>>(float &);
    CSQLQuery& operator>>(double &);
	CSQLQuery& operator>>(CTime &value);
	CSQLQuery& operator>>(COleDateTime &value);
	CSQLQuery& operator>>(CString &value);
	CSQLQuery& operator>(CString &value);


	const CSQLQuery& operator =(const LPCSTR& right);
	const CSQLQuery& operator +=(const LPCSTR& right);

    CSQLQuery& operator<<(const long value);
    CSQLQuery& operator<<(const double value);
    CSQLQuery& operator<<(const BYTE value);
    CSQLQuery& operator<<(const short value);
    CSQLQuery& operator<<(const int value);
    CSQLQuery& operator<<(const float value);
	CSQLQuery& operator<<(LPCSTR value);
	CSQLQuery& operator<<(const CTime &value);
	

protected:

	void DeleteCommand();
	void ShowError(LPCSTR error);
	void ShowDBError(IUnknown* pUnk, const IID& iid );
	bool CheckDBError(IUnknown* pUnk, const IID& iid );
	bool InitSession();
	COleVariant ToVariant(CDynamicAccessor*,int nCol);

protected:

	ATL::CDataSource*		m_pDataSource;
	CString					m_strDatabase;
	ATL::CSession*			m_pSession;
	CStringArray			m_columns;
	CQueryCommand*			m_pCommand;

	CQueryObjectList		m_object_list;

	CString					m_strError;
	bool					m_bMySession;

public:
	CString			m_strQuery;
	bool			m_bShowError;

};

inline
HRESULT	CSQLQuery::BeginTrans()
{
	ASSERT(m_pSession);
	if(m_pSession)
		return m_pSession->StartTransaction();
	else return S_FALSE;
}
inline
HRESULT	CSQLQuery::Abort(BOID* pboidReason, BOOL bRetaining, BOOL bAsync) const
{
	ASSERT(m_pSession);
	if(m_pSession)
		return m_pSession->Abort(pboidReason,bRetaining,bAsync);
	else return S_FALSE;
}
inline
HRESULT	CSQLQuery::Commit(BOOL bRetaining, DWORD grfTC, DWORD grfRM) const
{
	ASSERT(m_pSession);
	if(m_pSession)
		return m_pSession->Commit(bRetaining,grfTC,grfRM);
	else return S_FALSE;
}

inline
CQueryObjectList& CSQLQuery::GetDataList()
{ m_object_list.InitPosition();return m_object_list; }

inline
CString	CSQLQuery::GetLastError()
{ return m_strError;}

inline
ATL::CSession* CSQLQuery::GetSession() const
{ return	m_pSession;}

inline
ATL::CDataSource*CSQLQuery::GetDataSource() const
{ return m_pDataSource;}

inline
int	CSQLQuery::GetDataCount()			
{ return m_object_list.GetCount();}

inline
const CSQLQuery& CSQLQuery::operator =(const LPCSTR& right)
{
	m_strQuery = right;
	return *this;
}
inline
const CSQLQuery& CSQLQuery::operator +=(const LPCSTR& right)
{
	m_strQuery += right;
	return *this;
}
inline
CSQLQuery& CSQLQuery::operator<<(const long value)
{
	CString str; str.Format("%d",value);
	m_strQuery += str;
	return *this;
}
inline
CSQLQuery& CSQLQuery::operator<<(const double value)
{
	CString str; str.Format("%f",value);
	m_strQuery += str;
	return *this;
}
inline
CSQLQuery& CSQLQuery::operator<<(const BYTE value)
{
	return *this << (long) value;
}
inline
CSQLQuery& CSQLQuery::operator<<(const short value)
{
	return *this << (long) value;
}
inline
CSQLQuery& CSQLQuery::operator<<(const int value)
{
	return *this << (long) value;
}
inline
CSQLQuery& CSQLQuery::operator<<(const float value)
{
	return *this << (double) value;
}
inline
CSQLQuery& CSQLQuery::operator<<(LPCSTR value)
{
	m_strQuery += value;
	return *this;
}
inline
CSQLQuery& CSQLQuery::operator<<(const CTime &value)
{
	m_strQuery += value.Format("'%m/%d/%Y %H:%M:%S'");
	return *this;
}

inline 
bool CSQLQuery::eof()
{
	return m_object_list.IsEmpty()== TRUE;
}
inline CSQLQuery& __cdecl ccc(CSQLQuery& query) { return query << " , "; }

#endif // !defined(AFX_SQLQUERY_H__8DC91E9B_037C_11D3_8591_00C0DF240228__INCLUDED_)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美午夜在线一二页| 国产精品一区二区免费不卡| 日韩一区二区视频| 91婷婷韩国欧美一区二区| 麻豆视频一区二区| 亚洲成年人影院| 亚洲精品一卡二卡| 国产精品久久毛片av大全日韩| 日韩视频一区二区在线观看| 国产精品久久久久aaaa樱花| 久久99精品国产麻豆不卡| 久久国产福利国产秒拍| 国产精品亚洲视频| 制服丝袜中文字幕亚洲| 6080日韩午夜伦伦午夜伦| 国产精品久久久久影院| 国产一区二区电影| 成人国产精品免费网站| k8久久久一区二区三区| 色婷婷久久99综合精品jk白丝| 91在线播放网址| 久久久www成人免费无遮挡大片| 欧美电影免费观看高清完整版在 | 日本特黄久久久高潮| 日产国产高清一区二区三区| 欧美亚洲高清一区二区三区不卡| 中文文精品字幕一区二区| 欧美草草影院在线视频| 国产亚洲欧美日韩在线一区| 成人免费一区二区三区在线观看| 亚洲欧美电影一区二区| 日本午夜一区二区| 制服丝袜中文字幕亚洲| 日韩av一级片| 9191国产精品| 丝袜亚洲另类丝袜在线| 成人综合婷婷国产精品久久| 色偷偷一区二区三区| 中文字幕日本乱码精品影院| a级高清视频欧美日韩| 国产精品国模大尺度视频| 不卡av电影在线播放| 中文字幕中文乱码欧美一区二区| 丁香婷婷综合网| 国产欧美一区二区精品婷婷 | 欧美日韩综合在线| 精品理论电影在线观看| 裸体歌舞表演一区二区| 久久综合九色综合97_久久久| 亚洲男女毛片无遮挡| 91蜜桃视频在线| 亚洲一区电影777| 精品一区二区精品| 久久精品一区二区三区不卡| 国产电影精品久久禁18| 5858s免费视频成人| 日韩av电影免费观看高清完整版在线观看 | 欧美精品自拍偷拍动漫精品| 国产性色一区二区| 成人h版在线观看| 亚洲欧美日韩国产另类专区| 在线亚洲欧美专区二区| 国产欧美精品一区二区三区四区| 成人激情免费网站| 一区二区三区**美女毛片| 国产成人三级在线观看| 亚洲欧美偷拍卡通变态| 欧美精品高清视频| 国产一区二区不卡在线| 亚洲一区二区视频| 精品国产精品网麻豆系列| 日韩在线一区二区三区| 精品国产伦一区二区三区观看体验| 国产精品一区二区视频| 亚洲午夜久久久久久久久电影网 | 国产一区二区三区免费| 亚洲国产精品二十页| 欧美日韩国产高清一区二区 | 丰满岳乱妇一区二区三区 | 国产亚洲欧美色| 欧美日韩中文字幕一区| 国产在线视频精品一区| 欧美日韩国产系列| 夫妻av一区二区| 日韩精品一卡二卡三卡四卡无卡| 久久久久久久久岛国免费| 色94色欧美sute亚洲线路二| 国产偷国产偷亚洲高清人白洁| 在线中文字幕一区二区| 国产在线不卡一区| 午夜av区久久| 在线精品视频免费播放| 国产91丝袜在线播放九色| 麻豆极品一区二区三区| 亚洲国产精品久久一线不卡| 国产精品久久精品日日| 2023国产精品视频| 7777精品伊人久久久大香线蕉的 | 免费黄网站欧美| 日韩美女视频一区二区在线观看| 91在线高清观看| 国产成人av电影在线观看| 日韩电影免费在线看| 亚洲午夜一区二区| 亚洲在线免费播放| 日韩理论片在线| 7777精品伊人久久久大香线蕉 | 日本一区二区三区在线不卡| 欧美不卡视频一区| 日韩美女天天操| 日韩欧美国产麻豆| 91精品国产全国免费观看| 国产乱子轮精品视频| 免费视频一区二区| 蜜桃视频在线观看一区二区| 午夜精品成人在线视频| 性做久久久久久免费观看| 一区二区三区在线视频播放| 成人欧美一区二区三区黑人麻豆| 国产精品久线在线观看| 国产精品久久久久久久久免费丝袜 | 久久精品免费观看| 美国精品在线观看| 久久99精品久久久| 国产一区二区精品久久| 粉嫩高潮美女一区二区三区| 欧美日韩一区视频| 欧美日韩精品电影| 日韩亚洲国产中文字幕欧美| 欧美成人vr18sexvr| xvideos.蜜桃一区二区| 欧美激情资源网| 亚洲特黄一级片| 亚洲一区二区中文在线| 日韩不卡一二三区| 另类小说欧美激情| 夫妻av一区二区| 日本电影欧美片| 91精品国产色综合久久不卡电影| 日韩一级完整毛片| 久久影院电视剧免费观看| 国产精品系列在线| 亚洲成人高清在线| 国内外精品视频| 色域天天综合网| 欧美一卡二卡在线观看| 国产精品网站导航| 亚洲国产wwwccc36天堂| 国产呦萝稀缺另类资源| 色偷偷成人一区二区三区91| 欧美性受xxxx黑人xyx性爽| 日韩三级免费观看| 国产精品短视频| 日本不卡视频在线观看| 国产69精品久久99不卡| 欧美日韩在线三级| 久久麻豆一区二区| 一区二区视频免费在线观看| 日本不卡一区二区三区| 成人性视频网站| 56国语精品自产拍在线观看| 国产欧美日韩精品在线| 五月天中文字幕一区二区| 国产99精品在线观看| 欧美一区二区三区在| 亚洲欧美日韩国产手机在线| 久久精品国产精品青草| 色呦呦网站一区| 日本一区二区免费在线观看视频| 亚洲成人自拍一区| 成熟亚洲日本毛茸茸凸凹| 欧美日本免费一区二区三区| 久久综合久久鬼色中文字| 亚洲aⅴ怡春院| 成人黄色电影在线| 精品奇米国产一区二区三区| 亚洲色图欧美在线| 国产一区视频在线看| 884aa四虎影成人精品一区| 亚洲精品成人少妇| 99热在这里有精品免费| 欧美不卡一区二区三区| 日韩激情视频在线观看| 欧美无砖砖区免费| 亚洲欧美中日韩| 国产不卡高清在线观看视频| 日韩精品一区二区三区视频在线观看| 一区二区三区免费观看| jiyouzz国产精品久久| 国产亚洲精品免费| 国产乱码精品一区二区三| 日韩一级成人av| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美性三三影院| 一区二区三区鲁丝不卡| 95精品视频在线| 一本色道亚洲精品aⅴ| 国产精品乱子久久久久| 国产一二精品视频| 国产亚洲成年网址在线观看|