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

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

?? childfrm.h

?? FastDb是高效的內存數據庫系統
?? H
字號:
/***********************************************************
 * media transfer AG
 * 
 * Package:     FastDB Browser
 * Module:      $RCSfile: ChildFrm.h,v $
 * Type:        C++ Header
 * Version:     $Revision: 1.3 $
 * Last changed:
 *   Date: $Date: 2003/11/17 15:38:08 $
 *   By:   $Author: kzerbe $
 * 
 ***********************************************************/
/**
 * @file ChildFrm.h
 *
 * Database views (MDI child windows)
 */

#if !defined(AFX_CHILDFRM_H__109973F8_9A5F_4FCA_8BEB_F3180D13B164__INCLUDED_)
#define AFX_CHILDFRM_H__109973F8_9A5F_4FCA_8BEB_F3180D13B164__INCLUDED_

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

#include <list>
#include <vector>

using namespace std;

#include "common/stdstring.h" // CStdString class


/// register/deregister views to related database view
#define WM_REGISTERVIEW WM_APP+1
#define WM_REFRESH_DATA WM_APP+2

#define PLAIN_SQL_SELECT  "select * from %s where %s"
#define FIELD_BUFFER_SIZE 4096


/** structural info for database field */

struct TFieldDef
{
  /// field name
  CStdString name;

  // table to which field belongs
  CStdString refTable;

  /// field type id
  int type;

  /// field size (bytes)
  int size;

  /// field offset in record buffer
  int ofs;
};

/** mode for this view is used */
typedef enum EViewType
{
  eNoView,      /**< new view defined */
  eDbView,      /**< database view */
  eSchemaView,  /**< table schema view */
  eDataView,    /**< table content view */
  eQbeView,     /**< query by example view */
  eArrayView,   /**< array field content view */
  eRecordView   /**< record detail view */
};

/** common database content/schema view window class
 *
 * implemented as a MDI child window
 */

class CChildFrame : public CMDIChildWindowImpl<CChildFrame>
{

public:
  /// declare as MDI child
  DECLARE_FRAME_WND_CLASS(NULL, IDR_MDICHILD)

  /** constructor used for database main view
   *
   * @param dbName database (internal) name
   * @param dbPath pathname of file where database persists
   */
  CChildFrame(CStdString dbName, CStdString dbPath);

  /** constructor used for related views
   *
   * related views depend on a database view and are closed if database is closed.
   * they show schemas, tables, record details and array-field content
   *
   * @param dbHandle handle for opened database
   * @param dbTable table which content or schema is showed
   * @param dbName database name
   * @param oid object id of record which content is showed (if only one record is showed)
   * @param field definition of field that is showed (for array field content)
   */
  CChildFrame(int dbHandle, CStdString dbTable, CStdString dbName,
              int oid=0, TFieldDef* field=NULL);

  /// enter edit mode
  static void StartEditing();

  /// terminate edit mode
  static void EndEdit(bool bCommit);

  /// refresh data in all views (call after any change)
  static void RefreshData();

  /// create/edit new record
  static void NewRecord();

  /// delete record from table
  static void DeleteRecord();

  /// session handle for current database
  static int m_currentDB;

protected:
  /// handling view creation
  LRESULT OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled);

  /// process message forwarded from frame window
  LRESULT OnForwardMsg(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/);

  /// handler for clicking field content
  LRESULT OnItemActivated(int /*idCtrl*/, LPNMHDR pnmh, BOOL& bHandled);

  /// handler for right clicking field content
  LRESULT OnItemRClick(int /*idCtrl*/, LPNMHDR pnmh, BOOL& bHandled);

  /// register/deregister dependend views to database view
  LRESULT OnRegisterView(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& bHandled);

  /// refresh content after db change
  LRESULT OnRefreshData(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& bHandled);

  // window activated
  LRESULT OnActivate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled);

  LRESULT OnSave(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);

  LRESULT OnNewRecord(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);

  LRESULT OnDeleteRecord(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);

  /// cleanup before window is closing
  virtual void OnFinalMessage(HWND hWnd);

private:

  /// clone status of data view into another data view
  void Init(CChildFrame* pChild, EViewType vt);

  /// create database view
  void CreateDbView();

  /// create table schema view
  void CreateTableView();

  /// create table content view
  void CreateDataView();

  /// refresh table data content
  void RefreshTableData();

  /// create array field view
  void CreateArrayView();

  /// refresh array field content
  void RefreshArrayData();

  /// create record (detail) view
  void CreateRecordView();

  /// refresh record detail view
  void RefreshRecordData();

  /// add new record to table and edit in record view
  void AddNewRecord();

  /// delete record from table and update views
  void DeleteSelectedRecord();

  /// return value of hex encoded string (e.g. oid)
  int FromHex(CString str);

  /// return content of field with index fieldIdx as string
  void GetItemValue(CStdString& value, TFieldDef* f, char* buffer);
  bool GetRefItemValue(CStdString& value, TFieldDef* f);

  // convert string value into field format
  bool SetItemValue(CStdString value, int fieldIdx);

  /// store field descriptions into m_fieldDefs
  bool CChildFrame::GetFieldDefs(CStdString table, 
    int& fieldCnt, int& bufferSize, vector<TFieldDef>& fieldDefs, bool setColumns);

  /// check for field being edited and store if changed
  void UpdateField();

  /// check change flag
  bool HasChanged();

  void FillList(CStdString table);

  /// edit / transaction mode
  static bool s_editing;

  /// temporary field buffer
  static char m_fieldBuffer[FIELD_BUFFER_SIZE];

  /// parent window of all views
  static CWindow m_mdiClient;

  /// list view showing content
  CDbrowseView m_view;

  /// mode (what content is displayed) for view
  EViewType m_vt;

  /// database (internal) name
  CStdString m_dbName;

  /// database storage file path name
  CStdString m_dbFilePath;

  /// table from which schema or content is showed
  CStdString m_dbTable;

  /// table used for detail view of references
  CStdString m_refTable;

  /// query "where" condition
  CStdString m_queryCond;

  /// handle of used database
  int m_dbHandle;

  /// record buffer
  char* m_buffer;

  /// record buffer size
  int m_bufferSize;

  /// field definitions for all table fields
  vector<TFieldDef> m_fieldDefs;

  /// object id of showed record or array field
  int m_currentOid;

  /// number of columns for table
  int m_fieldCnt;

  /// current edited field (or -1)
  int m_currentEdit;

  /// type, size and record offset of current array-field
  TFieldDef m_currentField;

  /// window handle for view containing the database
  CWindow m_dbWindow;

  /// field editor
  CEdit m_fieldEdit;

  /// reference selector
  CComboBox m_refSelector;

  /// all views that are related to this database view
  list<CWindow> m_chieldViews;

  /// list of all views used to notify them e.g. about transaction state
  static list<CChildFrame*> m_allViews;

public:
  BEGIN_MSG_MAP(CChildFrame)
  MESSAGE_HANDLER(WM_CREATE, OnCreate)
  MESSAGE_HANDLER(WM_FORWARDMSG, OnForwardMsg)
  MESSAGE_HANDLER(WM_REGISTERVIEW, OnRegisterView)
  MESSAGE_HANDLER(WM_REFRESH_DATA, OnRefreshData)
  MESSAGE_HANDLER(WM_SETFOCUS, OnActivate)
  COMMAND_ID_HANDLER(ID_SAVE, OnSave)
  COMMAND_ID_HANDLER(ID_NEWRECORD, OnNewRecord)
  COMMAND_ID_HANDLER(ID_DELETERECORD, OnDeleteRecord)

  CHAIN_MSG_MAP(CMDIChildWindowImpl<CChildFrame>)
  NOTIFY_CODE_HANDLER(LVN_ITEMACTIVATE, OnItemActivated)
  NOTIFY_CODE_HANDLER(NM_RCLICK, OnItemRClick)
  END_MSG_MAP()
};

/////////////////////////////////////////////////////////////////////////////

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

#endif // !defined(AFX_CHILDFRM_H__109973F8_9A5F_4FCA_8BEB_F3180D13B164__INCLUDED_)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91在线国产福利| 日日欢夜夜爽一区| 韩国视频一区二区| 国产亚洲欧洲一区高清在线观看| 国产一区91精品张津瑜| 国产精品福利影院| 国产伦精品一区二区三区视频青涩 | 欧美成人一级视频| 国产iv一区二区三区| 亚洲男人电影天堂| 欧美一区二区精品久久911| 国产一区二区三区精品视频| 国产精品久久久久久久久免费桃花| 日本韩国欧美在线| 全国精品久久少妇| 1区2区3区精品视频| 7799精品视频| 99久久综合精品| 亚洲日本免费电影| 中文字幕在线观看不卡| 亚洲精品亚洲人成人网在线播放| 成人精品免费网站| 亚洲欧美日韩成人高清在线一区| 色老汉一区二区三区| 亚洲成人动漫精品| 精品久久久影院| yourporn久久国产精品| 亚洲亚洲人成综合网络| 在线观看三级视频欧美| 午夜电影网亚洲视频| 日韩欧美一级二级三级久久久| 久久精品久久综合| 亚洲国产激情av| 色女孩综合影院| 久久99久久精品| 亚洲女同女同女同女同女同69| 56国语精品自产拍在线观看| 高清在线观看日韩| 亚洲成人在线观看视频| 国产欧美视频一区二区| av日韩在线网站| 美女一区二区久久| 国产精品护士白丝一区av| 欧美色成人综合| 懂色av噜噜一区二区三区av| 国产成人综合亚洲91猫咪| 中文字幕第一区第二区| 97久久精品人人爽人人爽蜜臀| 亚洲欧美影音先锋| 色综合久久中文字幕综合网 | 欧美一区二区三区免费观看视频| 自拍av一区二区三区| 日韩一区二区电影网| jizzjizzjizz欧美| 精品一区二区三区在线播放视频| 亚洲黄色性网站| 中文字幕成人av| 欧美va亚洲va| 777a∨成人精品桃花网| 91福利国产成人精品照片| 国产成人av福利| 精品亚洲成a人| 男男视频亚洲欧美| 日本v片在线高清不卡在线观看| 亚洲欧美怡红院| 国产午夜精品久久久久久免费视| 在线观看91精品国产麻豆| 欧美三级日韩在线| 欧美日韩综合在线| 欧美精品丝袜中出| 欧美日韩国产美| 欧美日韩一区 二区 三区 久久精品| 99久久久无码国产精品| 成人激情小说网站| 成人app在线| av一区二区三区黑人| 波多野结衣亚洲一区| 成人av综合在线| 成人美女视频在线观看18| 91在线国产观看| 欧美亚州韩日在线看免费版国语版| 欧美中文字幕一区二区三区 | 久久成人免费网站| 粉嫩一区二区三区性色av| 99久久精品久久久久久清纯| 91视频www| 67194成人在线观看| 精品精品国产高清a毛片牛牛| 欧美精品一区二区三区视频| 日本一区二区免费在线观看视频| 中文字幕人成不卡一区| 亚洲综合精品久久| 国产一区二区三区免费在线观看 | 久久婷婷一区二区三区| 国产精品每日更新在线播放网址| 亚洲精品中文在线| 另类综合日韩欧美亚洲| 91一区二区在线观看| 制服.丝袜.亚洲.中文.综合| 久久精品一区四区| 视频一区在线视频| 成人99免费视频| 欧美变态口味重另类| 伊人一区二区三区| 国产一区二区伦理| 欧美日韩激情在线| 亚洲欧洲三级电影| 久久99精品久久久久| 在线免费观看不卡av| 国产色一区二区| 麻豆精品久久精品色综合| 日本久久一区二区| 中文字幕欧美激情一区| 久久99精品一区二区三区| 欧美日本在线视频| 亚洲伊人色欲综合网| 91网上在线视频| 国产欧美视频一区二区| 蜜臀久久99精品久久久画质超高清| 不卡大黄网站免费看| 国产婷婷一区二区| 国产综合色在线视频区| 日韩美女在线视频 | 亚洲一区二区免费视频| 日本道精品一区二区三区| **性色生活片久久毛片| www.欧美亚洲| 中文字幕一区免费在线观看| 国产91丝袜在线播放0| 国产欧美一区二区三区沐欲| 国产又黄又大久久| 欧美xingq一区二区| 久久精品国产精品亚洲综合| 91精品国产色综合久久不卡蜜臀 | 亚洲欧美日韩电影| 色婷婷精品大在线视频| 亚洲国产乱码最新视频| 欧美视频日韩视频在线观看| 午夜精品福利一区二区蜜股av| 欧美丝袜自拍制服另类| 日韩av午夜在线观看| 欧美精品一区二区蜜臀亚洲| 国产精品一区三区| 亚洲日本丝袜连裤袜办公室| 精品视频在线免费观看| 蜜臀av性久久久久蜜臀av麻豆| 欧美精品一区二区三区视频| 大桥未久av一区二区三区中文| 国产精品不卡视频| 69精品人人人人| 国产精品原创巨作av| 亚洲综合丁香婷婷六月香| 欧美一区二区三区爱爱| 成人午夜av电影| 亚洲超碰97人人做人人爱| 久久综合给合久久狠狠狠97色69| 不卡的看片网站| 青娱乐精品在线视频| 亚洲视频在线观看三级| 欧美zozo另类异族| 91亚洲精品乱码久久久久久蜜桃 | 欧美日韩精品一区二区三区四区| 精品一区二区精品| 亚洲一区自拍偷拍| 国产精品无遮挡| 欧美一级一区二区| 色综合久久综合网97色综合| 国产一区二区三区四区五区入口| 一区二区三区四区在线免费观看| 欧美精品一区二区三区一线天视频| 欧美亚洲尤物久久| 99视频一区二区| 国产成人aaaa| 国产精品影视天天线| 裸体在线国模精品偷拍| 五月婷婷久久丁香| 夜夜揉揉日日人人青青一国产精品| 精品久久久久久久久久久久久久久| 欧美日韩三级在线| 欧美午夜片在线看| 在线观看日韩毛片| 欧美午夜在线一二页| 色哟哟一区二区| 91碰在线视频| av不卡在线播放| 波多野结衣在线aⅴ中文字幕不卡| 美女尤物国产一区| 精品一区二区三区免费视频| 卡一卡二国产精品| 国产一区二区三区久久久| 国产一区二区三区在线观看免费| 激情图片小说一区| 国产一区二区在线免费观看| 国产精品中文字幕日韩精品 | 日韩一区二区电影| 精品国产sm最大网站| 欧美激情一区三区| 国产精品国产自产拍高清av王其 | 国产女人aaa级久久久级 | 97精品国产97久久久久久久久久久久|