程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 如何輕松掌握對處理程序 進行實例化處理

如何輕松掌握對處理程序 進行實例化處理

編輯:關於MYSQL數據庫

調用存儲引擎的第1個方法是調用新的處理程序實例。

在存儲引擎源文件中定義handlerton之前,必須定義用於函數實例化的函數題頭。下面給出了1個來自CSV引擎的示例:

static handler* tina_create_handler(TABLE *table);

正如你所見到的那樣,函數接受指向處理程序准備管理的表的指針,並返回處理程序對象。

定義了函數題頭後,用第21個handlerton元素中的函數指針命名函數,指明函數負責生成新的處理程序實例。

下面給出了MyISAM存儲引擎的實例化函數示例:

static handler *myisam_create_handler(TABLE *table)
  {
    return new ha_myisam(table);
  }

該調用隨後與存儲引擎的構造程序一起工作。下面給出了來自FEDERATED存儲引擎的1個示例:

ha_federated::ha_federated(TABLE *table_arg)
  :handler(&federated_hton, table_arg),
  mysql(0), stored_result(0), scan_flag(0),
  ref_length(sizeof(MySQL_ROW_OFFSET)), current_position(0)
  {}

下面給出了來自EXAMPLE存儲引擎的另一個示例:

ha_example::ha_example(TABLE *table_arg)
  :handler(&example_hton, table_arg)
  {}

FEDERATED示例中的附加元素是處理程序的額外初始化要素。所要求的最低實施是EXAMPLE示例中顯示的handler()初始化。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved