MQL5 リファレンスデータベースの操作 

データベースの操作

データベースを操作するための関数は、一般的で使いやすいSQLiteエンジンを使用します。このエンジンの便利な機能は、データベース全体がユーザーPCのハードディスク上の単一のファイルにあることです。

これらの関数を使用すると、簡単なSQL要求を使用して、テーブルの作成、データの追加、変更の実行、サンプリングを簡単に行うことができます。

  • 任意の形式からの取引履歴と相場の受け取り
  • 最適化とテスト結果の保存
  • 他の分析パッケージとのデータの準備および交換
  • MQL5アプリケーションの設定とステータスの保存

データベースを使用するための関数を使用すると、最も頻繁に繰り返される大きなデータ配列処理操作をSQL要求に置き換えることができるため、多くの場合、複雑なループと比較をプログラミングする代わりにDatabaseExecute/DatabasePrepareは、呼び出すことができます。DatabaseReadBind関数を使用すると、既成の構造体でクエリ結果を簡単に取得できます。この関数では、1回の呼び出しですべてのレコードフィールドを一度に読み取ることができます。

読み取り、書き込み、変更を高速化するために、データベースはDATABASE_OPEN_MEMORYフラグを使用してRAMで開いたり作成したりできますが、このようなデータベースは特定のアプリケーションでのみ使用でき、共有されません。ハードディスク上にあるデータベースを使用する場合、バルクデータの挿入/変更は、DatabaseTransactionBegin/DatabaseTransactionCommit/DatabaseTransactionRollbackを使用してトランザクションにラップする必要があります。これにより、プロセスが何百回も加速されます。

関数の使用をはじめるにあたって、SQLite: MQL5 での SQL データベースのネイティブな処理稿をお読みください。

関数

アクション

DatabaseOpen

指定したファイルでデータベースを開くか作成します

DatabaseClose

データベースを閉じます

DatabaseImport

ファイルからテーブルにデータをインポートします。

DatabaseExport

テーブルまたはSQL要求の実行結果をCSVファイルにエクスポートします。ファイルはUTF-8エンコードで作成されます。

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

現在のレコードからフィールド値を配列として取得します