記事"SQLite: MQL5 での SQL データベースのネイティブな処理"についてのディスカッション - ページ 11

 
Fernando Carreiro #:

でも、あそこは私が言った場所じゃないでしょう?

それなら、"%APPDATA%MetaQuotes゠Terminal゠Common゠Files"にあるよ。

"signals.sqlite "ファイルには構造があるだけで、"signals.dat "ファイルにはデータがあると思う

しかし、それはドキュメントにある
parameters

filename

[in] "MQL5Files "フォルダに対するファイル名。

削除済み  
Zbigniew Mirowski #:
"signals.sqlite "ファイルには構造しかなく、signals.datファイルにはデータがあると思われます

いいえ!"signals.dat"はMetaTraderの 内部データファイルであり、SQLiteとは 何の関係もないことはすでにお伝えしました。

"signals.dat"ファイルは、MetaTraderがトレードシグナル 機能で取得できるシグナルに関する情報を保存する場所です。

コードベース

すべてのMT5シグナルのプロパティをCSVファイルにリストする

フェルナンド・カレイロ, 2022.04.21 15:14

このシンプルでクイック&ダーティなスクリプトコードは、MQL5のトレードシグナル機能によって報告されたすべてのシグナルのプロパティをCSVファイルに出力します。

Documentation on MQL5: Trade Signals
Documentation on MQL5: Trade Signals
  • www.mql5.com
Trade Signals - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5
削除済み  
Zbigniew Mirowski #: parameters, filename, [in] "MQL5Files "フォルダに対するファイル名。

しかし、あなたは場所を変更するフラグ"DATABASE_OPEN_COMMON"を使用しました。そのため、コモン・フォルダに入れたくない場合は、このフラグを使用しないでください。

DATABASE_OPEN_COMMON

ファイルはすべての端末の共通フォルダにあります。

 
Fernando Carreiro #:

しかし、あなたは"DATABASE_OPEN_COMMON"というフラグを使いました。ですから、コモンフォルダに入れたくないのであれば、このフラグは使わないでください。

DATABASE_OPEN_COMMON

ファイルはすべての端末の共通フォルダにあります。

わかりました。signals.sqlite-walにデータがあります。)

ありがとうございました。)

削除済み  
Zbigniew Mirowski #: OK, I understand Then where is the data?アップロードして確認シグナルを受け取ります。

CS 0 12:43:16.106 SignalsBasa (EURUSD,H1) DB: succesfull
データをロードした後のドキュメントはまだ8キロバイトで、データをロードして受信することはできません
2022.11.30 12:55:49.103 CreateDB (EURUSD,H1) DB: signals.sqlite opened
2022.11.30 12:55:49.103 CreateDB (EURUSD,H1) 0: 0,0,0,0.0,0.0

しかし、あなたはすでにファイルを見つけたと述べています...

"Wow, I found the file "signals.sqlite" C:¥Usersname¥AppData¥Roaming¥MetaQuotes¥Terminal¥Common¥Files"

で、何が問題?

"signals.sqlite"ファイルは、構造とデータが一体になっている。MetaEditorでそれを開いて、自分の目でデータを見てください -Working with SQL data bases - MetaEditor Help

削除済み  
Zbigniew Mirowski #: わかりました。signals.sqlite-walにデータがあります。)ありがとうございました)

どういたしまして!

 

MetaEditorで、データベーステーブルの最大表示 カラム数が23しか ありません。

この制限を解除することは可能でしょうか?

 
Anatoli Kazharski #:

MetaEditorでは、データベース・テーブルのカラムの最大表示 数は23しか ない。

この制限を解除することは可能でしょうか?

ベータ3531でカラム数を64に増やして修正しました。
 
どこかの時点で、シングルクォートとダブルクォートについての 回答があった。そのままではないが、「長い間、二重引用符で仕事をしてきた」という文章に近い。今現在、テーブルでの作業に戻ると、ダブルクォーテーションで囲んだテキストをテーブルに書き込もうとすると失敗する。しかし、テキストを一重引用符で囲んでから二重引用符で囲むと、書き込みは成功します。テーブルにテキストを書き込む際の一重引用符と二重引用符の正しいルールを教えてください。
オプションと結果:
成功
         AddTable_TstDate(i,
                          iTime(Symbol(),PERIOD_CURRENT,i),
                          iHigh(Symbol(),PERIOD_CURRENT,i),
                          iTime(Symbol(),PERIOD_CURRENT,i),
                          iLow(Symbol(),PERIOD_CURRENT,i),
                          IntegerToString(iTime(Symbol(),PERIOD_CURRENT,i)),
                          1121,
                          "'string_no_error'");

成功しない

         AddTable_TstDate(i,
                          iTime(Symbol(),PERIOD_CURRENT,i),
                          iHigh(Symbol(),PERIOD_CURRENT,i),
                          iTime(Symbol(),PERIOD_CURRENT,i),
                          iLow(Symbol(),PERIOD_CURRENT,i),
                          IntegerToString(iTime(Symbol(),PERIOD_CURRENT,i)),
                          1121,
                          "string_error");

指摘しておきたいのは、整数を文字列に変換しても、テーブルに書き込む際にエラーは発生しないということだ。

 

開発者の皆様、なぜ既存のデータベースをファイルからアタッチ(ATTACH DATABASE)できないのか教えてください。

では、RAMからデータベースをアタッチ するにはどうすればいいのでしょうか?

コードを添付します。

create_databases.mq5 スクリプトはデータベースを作成します。attach_mem_db.mq5 スクリプトはRAMからデータベースをアタッチします。しかし、 attach_other_db.mq5 スクリプトは 既存のデータベースのアタッチに失敗します。

ファイル: