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

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

?? axlib.h

?? 一個非常好用的ADO封裝類,程序員不再需要跟煩人的COM接口打交道,寫數據庫程序不再麻煩!
?? H
?? 第 1 頁 / 共 3 頁
字號:
    void           _SetConnectionEvents(CAxConnectionEvents* pEvents);
    void           _ClearConnectionEvents();
	  bool           _IsOpen();
    bool           _SupportsTransactions();
	  ADOConnection* _GetActiveConnection() { return m_piConnection; } 

    //Collections
    ADOErrors*     Errors();
    ADOProperties* Properties();

    //Methods
	  void           BeginTrans(long *plTransLevel);
	  void	         Cancel();
    void           Close();
	  void	         CommitTrans();
	  void           Execute(LPCTSTR lpszCmdText, long* lpRecsAffected = NULL, 
                        CommandTypeEnum lOptions = adCmdUnknown);
	  void           Open(LPCTSTR lpszConnectStr = NULL,
                        LPCTSTR lpszUserID = NULL,
                        LPCTSTR lpszPwd = NULL,
                        ConnectOptionEnum eConnnect = adConnectUnspecified);
	  void	         RollbackTrans();

    //Properties
	  XactAttributeEnum  
                   Attributes(long lAttribute = -1);
	  long           CommandTimeout(long lSeconds = -1);
	  LPCTSTR        ConnectionString(LPCTSTR lpszConnectStr = NULL);
	  long           ConnectionTimeout(long lSeconds = -1);
	  CursorLocationEnum 
                   CursorLocation(long lCursorLocation = -1);
	  LPCTSTR        DefaultDatabase(LPCTSTR lpszDatabase = NULL);
	  IsolationLevelEnum           
                   IsolationLevel(IsolationLevelEnum eIsoLevel = adXactUnspecified);
	  ConnectModeEnum
                   Mode(long lConMode = -1);
	  LPCTSTR        Provider(LPCTSTR lpszProvider = NULL);
	  ObjectStateEnum
                   State();
	  LPCTSTR	       Version();

  };  // CAxConnection




  /////////////////////////////////////////////////////////////////////////////
  // CAxCommand class
  // Desc: Provide and interface to the stored procedures of a data provider.
  //       A derrived CAxCommand object is initialized with parameters and
  //       may be used as an argument to open a CAxRecordset object.
  class CAxCommand
  {
    friend class CAxRecordset;

  public:
    CAxCommand();
    virtual ~CAxCommand();

    //Attributes
    ADOCommand*     m_piCommand;
    ADOParameters*  m_piParameters;
    CAxConnection*  m_pConnection;

    //Implementation
    void            Create();

    //Collections
    ADOParameters*  Parameters();
    ADOProperties*  Properties();

    //Methods
    void            Cancel();
    ADOParameter*   CreateParameter(LPCTSTR lpszParam, DataTypeEnum eDataType,
                      ParameterDirectionEnum eParameterDirection, long lSize, 
                      _variant_t *pValue);
    ADORecordset*   Execute(long* plAffected = NULL);

    //Properties
    CAxConnection*  ActiveConnection(CAxConnection* pCn = NULL);
	  LPCTSTR         CommandText(LPCTSTR lpszCmdText = NULL);
	  long            CommandTimeout(long lSeconds = -1);
	  CommandTypeEnum CommandType(CommandTypeEnum eCmdType = adCmdUnspecified);
//	  void            Prepared(BOOL bPrepare = FALSE);
	  ObjectStateEnum State();

  protected:
	  virtual void    _CreateParameters() { /* Override in derrived class */  }
	  virtual void    _UpdateParameters() { /* Override in derrived class */  }
    void            _SetParamValue(LPCTSTR lpszParam, _variant_t* pValue);

  };

  /////////////////////////////////////////////////////////////////////////////
  // CAxRecordset class
  // Desc:
  //
  class CAxRecordset
  {
  //Construction
  public:
	  CAxRecordset();
	  virtual ~CAxRecordset();

  //Attributes
  public:

  protected:
    //dbAx objects
    CAxConnection*   m_pConnection;
    CAxCommand*      m_pCommand;
    CursorTypeEnum   m_eCursorType;
    LockTypeEnum     m_eLockType;

    //ADO COM objects
	  ADORecordset*		 m_piRecordset;
	  ADOConnection*	 m_piConnection;
    DWORD            m_dwEvents;                    //Recordset events cookie

	  CString				   m_strSourceString;
	  ADOFields*			 m_pFields;
	  CursorTypeEnum   m_CursorType;
	  LockTypeEnum		 m_LockType;
	  long				     m_lOptions;
	  _variant_t			 m_varLastGoodRecord;
	  _variant_t			 m_vtData;
//    ADOField*        m_pField;

    HRESULT          m_hr;

    //Implementation
    public:
    HRESULT          Create();

    //AxLib specific
    void             _ClearRecordsetEvents();
 	  bool	           _IsEmpty();
	  bool             _IsOpen();
    virtual void     _SetDefaultValues() { /*Virtual function*/ }
    void             _SetRecordsetEvents(CAxRecordsetEvents* pEvents);
    _variant_t*      _GetFieldValue(LPCTSTR lpszColumn);
    _variant_t*      _GetFieldValue(long nColumn);

    HRESULT          _GetFieldValue(LPCTSTR lpszColumn, _variant_t* pvtData);

    //Collections
    ADOFields*       Fields();
    ADOProperties*   Properties();

    //Methods
    void             AddNew();
    void             Cancel();
    void             CancelBatch();
    void             CancelUpdate();
    ADORecordset*    Clone(LockTypeEnum eLockType = adLockUnspecified);
    void             Close();
    CompareEnum      CompareBookmarks(_variant_t vtBkMark1, _variant_t vtBkMark2);
    void             Delete(AffectEnum eAffect = adAffectCurrent);
	  bool	           Find(LPCTSTR lpszCriteria, long nSkip = 0,
		                    SearchDirectionEnum SearchDirection = adSearchForward,
				                _variant_t* pvtStart = NULL);
    void             GetRows();
    void             GetString();
	  void	           Move(long nNumRecs, _variant_t* pvtStartRec = NULL);
	  void	           MoveFirst() ;
	  void	           MoveLast();
	  void	           MoveNext();
	  void	           MovePrevious();
    void             NextRecordset();

	  void	           Open(CAxCommand* pCmd,
				                CursorTypeEnum eCursorType = adOpenForwardOnly,
				                CursorLocationEnum eCursorLocation = adUseClient,
				                LockTypeEnum eLockType = adLockOptimistic, 
				                long nOptions = adCmdUnspecified);

	  void 	           Open(LPCTSTR szSource, CAxConnection *pConnection,
				                CursorTypeEnum eCursorType = adOpenForwardOnly,
				                CursorLocationEnum eCursorLocation = adUseClient,
				                LockTypeEnum eLockType = adLockOptimistic, 
				                long nOptions = adCmdUnspecified);

    void           Requery(ExecuteOptionEnum eExecuteOption = adOptionUnspecified);
    void           Resync(AffectEnum eAffectRecords = adAffectAll,
                          ResyncEnum eResyncValues = adResyncAllValues);

  void             Save(LPCTSTR lpszFileName, 
                        PersistFormatEnum ePersistFormat = adPersistADTG);
  bool             Supports(CursorOptionEnum eCursorOption);
  void             Update();

    //Properties
  long             AbsolutePage(long nPageNum = 0);
	long	           AbsolutePosition(long nPosition = 0);
  CAxCommand*      ActiveCommand();
  CAxConnection*   ActiveConnection();
	bool             IsBOF();
  _variant_t*      Bookmark(_variant_t* pvtBookmark = NULL);
	long             CacheSize(long nCacheSize = 0);
	CursorLocationEnum
                   CursorLocation(long eCursorLocation = -1);
	CursorTypeEnum   CursorType(CursorTypeEnum eCursorType = adOpenUnspecified);
	EditModeEnum     EditMode();
  bool             IsEOF();
  _variant_t       Filter(_variant_t* pvtFilter = NULL);
  LPCTSTR          Index(LPCTSTR lpszIndex = NULL);
	LockTypeEnum     LockType(LockTypeEnum eLockType = adLockUnspecified);
  MarshalOptionsEnum
                   MarshalOptions(long eOptions = -1);
  long             MaxRecords(long nMaxRecords = -1);
  long             PageCount();
  long             PageSize(long nPageSize = 0);
	long             RecordCount();
	LPCTSTR          Sort(LPCTSTR lpszSort = NULL);
	LPCTSTR          Source(LPCTSTR lpszSource = NULL);
	ObjectStateEnum  State();
	RecordStatusEnum Status();

  ADOFields*       GetFields() { return (m_pFields); }
	long	           FieldCount();

  
protected:
  HRESULT          _getADOField(LPCTSTR lpszColumn, ADOField** ppFld);
  HRESULT          _isUpdatable(ADOField* pFld);
  HRESULT          _getFldValue(ADOField* pFld, unsigned short varType, void** ppValue);
  HRESULT          _setFldValue(ADOField* pFld, unsigned short varType, void** ppValue);
  HRESULT          _setGetFieldValue(bool bSave, LPCTSTR lpszColumn, 
                                       unsigned short varType, void* pvValue);
public:
  void             FX_BigInt(bool bSave, LPCTSTR lpszColumn, LONGLONG& llValue )
                     {if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_I8, (void*)&llValue))
                       ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_BigInt"), m_hr); }

	void	           FX_Binary(bool bSave, LPCTSTR lpszColumn, BYTE** ppValue);

	void             FX_Bool(bool bSave, LPCTSTR lpszColumn, bool& bValue)
                     {if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_BOOL, (void*)&bValue))
                       ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_Bool"), m_hr); }

  void             FX_Char(bool bSave, LPCTSTR lpszColumn, CString& szValue)
                     {if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_BSTR, (void*)&szValue))
                       ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_Char"), m_hr); }

	void	           FX_DateTime(bool bSave, LPCTSTR lpszColumn, COleDateTime& dtValue)
                     {if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_DATE, (void*)&dtValue))
                       ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_DateTime"), m_hr); }

  void             FX_Decimal(bool bSave, LPCTSTR lpszColumn, double& dblValue)
                     {if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_DECIMAL, (void*)&dblValue))
                       ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_Decimal"), m_hr); }

	void             FX_Float(bool bSave, LPCTSTR lpszColumn, double& dblValue)
                     {if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_R8, (void*)&dblValue))
                       ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_Float"), m_hr); }

	void             FX_Image(bool bSave, LPCTSTR lpszColumn, BYTE** ppValue);

	void             FX_Integer(bool bSave, LPCTSTR lpszColumn, int& iValue)
                   {if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_I4, (void*)&iValue))
                     ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_Integer"), m_hr); }

  void             FX_Money(bool bSave, LPCTSTR lpszColumn, COleCurrency& cyValue)
                     {if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_CY, (void*)&cyValue))
                      ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_Money"), m_hr); }

  void             FX_NChar(bool bSave, LPCTSTR lpszColumn, CString& szValue)
                     {if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_BSTR, (void*)&szValue))
                       ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_NChar"), m_hr); }

  void             FX_NText(bool bSave, LPCTSTR lpszColumn, CString& szValue)
                   {if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_BSTR, (void*)&szValue))
                     ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_NText"), m_hr); }

  void             FX_Numeric(bool bSave, LPCTSTR lpszColumn, double& dblValue)
                     {if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_DECIMAL, (void*)&dblValue))
                       ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_Numeric"), m_hr); }

  void             FX_NVarChar(bool bSave, LPCTSTR lpszColumn, CString& szValue)
                     {if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_BSTR, (void*)&szValue))
                       ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_NVarChar"), m_hr); }

  void             FX_Real(bool bSave, LPCTSTR lpszColumn, float& fltValue)
                     {if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_R4, (void*)&fltValue))
                       ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_Real"), m_hr); }

	void	           FX_SmallDateTime(bool bSave, LPCTSTR lpszColumn, COleDateTime& dtValue)
                     {if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_DATE, (void*)&dtValue))
                       ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_SmallDateTime"), m_hr); }

  void             FX_SmallInt(bool bSave, LPCTSTR lpszColumn, short& sValue)
                     {if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_I2, (void*)&sValue))
                       ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_SmallInt"), m_hr); }

  void             FX_SmallMoney(bool bSave, LPCTSTR lpszColumn, COleCurrency& cyValue)
                     {if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_CY, (void*)&cyValue))
                       ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_SmallMoney"), m_hr); }

  void             FX_SQLVariant(bool bSave, LPCTSTR lpszColumn, _variant_t& vtValue)
                     {if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_VARIANT, (void*)&vtValue))
                       ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_SQLVariant"), m_hr); }

  void             FX_Text(bool bSave, LPCTSTR lpszColumn, CString& szValue)
                     {if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_BSTR, (void*)&szValue))
                       ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_Text"), m_hr); }

  void             FX_TinyInt(bool bSave, LPCTSTR lpszColumn, BYTE& chValue)
                     {if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_UI1, (void*)&chValue))
                       ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_TinyInt"), m_hr); }

	void             FX_UniqueIdentifier(bool bSave, LPCTSTR lpszColumn, CString& szValue)
                     {if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_BSTR, (void*)&szValue))
                       ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_UniqueIdentifier"), m_hr); }

  void	           FX_VarBinary(bool bSave, LPCTSTR lpszColumn, BYTE** ppValue);

  void             FX_VarChar(bool bSave, LPCTSTR lpszColumn, CString& szValue)
                     {if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_BSTR, (void*)&szValue))
                       ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_VarChar"), m_hr); }
  
protected:
  virtual void     DoFieldExchange(bool bSave) { }

  }; // class CAxRecordset

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产一区二区精华| 国产一二精品视频| 综合久久久久久| 欧美激情一二三区| 日韩一区二区在线观看视频 | 椎名由奈av一区二区三区| 久久精品一区二区三区四区| 2024国产精品| 亚洲精品一区二区三区精华液| 欧美大片日本大片免费观看| 精品国产污网站| 国产性做久久久久久| 国产人久久人人人人爽| 国产人成亚洲第一网站在线播放| 中文字幕av不卡| 亚洲精品日日夜夜| 午夜电影一区二区| 麻豆精品国产91久久久久久| 国内精品免费**视频| 国产精品乡下勾搭老头1| 丰满少妇在线播放bd日韩电影| 国产不卡视频一区| 欧洲精品中文字幕| 69堂亚洲精品首页| 国产欧美日韩另类视频免费观看| 国产精品视频观看| 性做久久久久久| 精品一区二区三区在线观看| 成人免费高清在线观看| 欧美吻胸吃奶大尺度电影| 欧美va日韩va| 亚洲人成精品久久久久久| 日韩高清在线不卡| 丁香啪啪综合成人亚洲小说| 91久久国产最好的精华液| 日韩亚洲欧美在线| 亚洲码国产岛国毛片在线| 免费成人你懂的| 91片在线免费观看| 欧美精品一区二区高清在线观看| 亚洲欧美综合另类在线卡通| 日本美女一区二区三区视频| www.久久久久久久久| 91精品国产欧美日韩| 国产精品久久久99| 久久精品国产网站| 欧美日韩一区成人| 国产精品久久久久婷婷二区次 | 欧美一级淫片007| 国产精品人成在线观看免费| 免费看日韩精品| 在线这里只有精品| 亚洲视频综合在线| 99精品热视频| 欧美精品一区二区三区蜜臀| 日韩av电影天堂| 在线欧美一区二区| 《视频一区视频二区| 国产成人丝袜美腿| 久久免费午夜影院| 老司机午夜精品99久久| 91精品在线观看入口| 亚洲成人黄色影院| 欧美日韩三级一区| 香蕉影视欧美成人| 欧美日韩一区在线观看| 亚洲国产视频在线| 欧美视频一区在线观看| 亚洲综合另类小说| 在线观看视频91| 一区二区三区蜜桃网| 一本色道久久综合亚洲91| 成人免费在线观看入口| 成人国产精品免费| 亚洲欧洲精品一区二区精品久久久| 成人免费视频视频在线观看免费| 久久久精品黄色| 成人在线一区二区三区| 国产精品久久久久久久裸模| 国产91清纯白嫩初高中在线观看| 精品福利二区三区| 国产.欧美.日韩| 国产精品国产三级国产| 99精品久久免费看蜜臀剧情介绍| 久久精品夜夜夜夜久久| 国产成人综合网站| 亚洲国产精品黑人久久久| 成人午夜激情视频| 亚洲精品自拍动漫在线| 在线视频国内自拍亚洲视频| 亚洲男人的天堂在线观看| 欧美视频一区二区三区| 日本成人在线电影网| 久久久99精品久久| 91视频免费播放| 亚洲成人免费在线观看| 欧美大片国产精品| 国产白丝网站精品污在线入口| 136国产福利精品导航| 色婷婷综合久久久久中文一区二区| 国产精品第五页| 欧美另类久久久品| 精品一区二区三区蜜桃| 国产精品久久久久久久久免费相片| 在线视频中文字幕一区二区| 天天综合天天做天天综合| 精品sm在线观看| 不卡欧美aaaaa| 日韩经典一区二区| 亚洲国产成人午夜在线一区| 成人黄色国产精品网站大全在线免费观看 | 91丨九色丨国产丨porny| 亚洲成人免费视频| 国产精品无人区| 8x8x8国产精品| 99久久99久久精品免费看蜜桃| 午夜精品久久久| 亚洲国产精华液网站w| 91精品中文字幕一区二区三区| 粉嫩aⅴ一区二区三区四区| 午夜国产精品一区| 专区另类欧美日韩| 国产色一区二区| 色狠狠色噜噜噜综合网| 久久精品国产秦先生| 一区二区久久久久久| 亚洲国产精品成人综合| 91精品国产综合久久久久久久久久| 成人av在线资源网站| 久久99这里只有精品| 亚洲福中文字幕伊人影院| 最好看的中文字幕久久| 久久日韩精品一区二区五区| 欧美老女人在线| 欧美在线免费观看亚洲| 成人免费视频一区| 国产精品99久久久| 激情六月婷婷综合| 免费在线看成人av| 天天亚洲美女在线视频| 亚洲精品菠萝久久久久久久| 国产精品亲子伦对白| 日本一区二区三区视频视频| 欧美刺激脚交jootjob| 欧美一区二区精品| 欧美系列亚洲系列| 99久久99精品久久久久久| av一区二区三区| 福利视频网站一区二区三区| 高清shemale亚洲人妖| 国产乱码一区二区三区| 国产精品一区二区三区网站| 麻豆免费精品视频| 激情国产一区二区| 国产福利91精品| 大美女一区二区三区| 99久免费精品视频在线观看 | 91麻豆免费视频| 色欧美片视频在线观看| 一本久久a久久免费精品不卡| 色婷婷av一区二区三区软件 | 国产精品综合一区二区| 国产一区二区三区四区五区入口| 韩国女主播一区二区三区| 国产伦精品一区二区三区免费| 国产精品 欧美精品| 成人精品小蝌蚪| 色视频成人在线观看免| 欧美精品久久久久久久多人混战| 欧美日本一区二区| 欧美tickling挠脚心丨vk| 国产午夜精品一区二区三区视频| 国产精品美女久久久久av爽李琼| 日韩毛片高清在线播放| 午夜欧美大尺度福利影院在线看| 麻豆视频观看网址久久| 国产精品系列在线播放| www.欧美日韩国产在线| 欧美日韩精品免费观看视频| 精品美女在线观看| 综合网在线视频| 国产精品一区二区男女羞羞无遮挡 | 91精品婷婷国产综合久久性色| 日韩一区二区三区观看| 日本一区二区成人| 亚洲成av人综合在线观看| 国产美女精品一区二区三区| 91无套直看片红桃| 精品日韩欧美在线| 亚洲精品乱码久久久久| 激情综合亚洲精品| 91在线视频网址| 精品国产一区二区三区久久久蜜月| 亚洲视频小说图片| 久久精品av麻豆的观看方式| 色婷婷综合久久久| 国产日韩欧美综合在线| 三级成人在线视频| 色素色在线综合| 国产精品国产三级国产专播品爱网 |