MQL5参考使用數據庫 

使用數據庫

這些數據庫函數使用了流行且易於使用的SQLite引擎。該引擎的便利之處在於,整個數據庫都位於用戶PC硬盤上的單個文件中。

這些函數可以方便地創建表格、向表中添加數據、執行更改和使用簡單的SQL請求進行採樣:

  • 接收任何格式的交易歷史和報價,
  • 保存優化和測試結果,
  • 通過其他分析組合準備和交換數據,
  • 存儲MQL5應用程序設置和狀態。

數據庫函數可以使您通過SQL請求替換重複率最高的大數據組處理操作,因此常常可以使用DatabaseExecute/DatabasePrepare調用,而不是編寫複雜的循環和比較。使用DatabaseReadBind函數,方便地獲取現有架構中的查詢結果。該函數運行在單個調用中一次性讀取所有記錄字段。

若要加快讀取、編寫和更改速度,可以使用DATABASE_OPEN_MEMORY標識在RAM中打開/創建數據庫,雖然這樣的數據庫只適用於特定的應用程序,不可共享。當處理位於硬盤上的數據庫時,應該使用DatabaseTransactionBegin/DatabaseTransactionCommit/DatabaseTransactionRollback將批量數據插入/更改封裝在交易事務中。這可以使整個過程加快數百倍。

若要開始使用函數,請參閱文章SQLite:本地操作MQL5中的SQL數據庫

函數

操作

DatabaseOpen

在指定文件中打開或創建數據庫

DatabaseClose

關閉數據庫

DatabaseImport

從文件導入數據到表格中

DatabaseExport

將表格或SQL請求執行結果到處到CSV文件

DatabasePrint

在專家日誌中打印表格或SQL執行結果

DatabaseTableExists

檢查數據庫中是否存在表格

DatabaseExecute

執行對指定數據庫的請求

DatabasePrepare

創建可使用DatabaseRead()執行的請求句柄

DatabaseReset

重置請求,比如調用DatabasePrepare()之後

DatabaseBind

在請求中設置一個參數值

DatabaseBindArray

將數組設置爲參數值

DatabaseRead

作爲請求結果,移到下一個條目

DatabaseFinalize

移除在DatabasePrepare()中創建的請求

DatabaseTransactionBegin

開始事務執行

DatabaseTransactionCommit

完成事務執行

DatabaseTransactionRollback

回滾事務

DatabaseColumnsCount

獲取請求中的字段數

DatabaseColumnName

按索引獲取字段名

DatabaseColumnType

按索引獲取字段類型

DatabaseColumnSize

獲取字段大小(以字節爲單位)

DatabaseColumnText

從當前記錄中獲取作爲字符串的字段值

DatabaseColumnInteger

從當前記錄中獲取int類型的值

DatabaseColumnLong

從當前記錄中獲取long類型的值

DatabaseColumnDouble

從當前記錄中獲取double類型的值

DatabaseColumnBlob

從當前記錄中獲取作爲數組的字段值