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

 
Renat Fatkhullin #:
ありがとう。

こちらこそ!

ON DELETEと ON UPDATEも チェックしてください:

  • アクションなし
  • SET NULL
  • デフォルトの設定
  • 制限
  • CASCADE

これがないと、作業が非常に複雑になる。

 
Anatoli Kazharski #:

返信ありがとう!

なぜか期待した結果が得られないんだ:

//---

エラーはどこですか?

そして、これは私も対処したいことだ:

SQLITE_DEFAULT_FOREIGN_KEYSを使わずにビルドしたのが間違いでした。

すでに修正され、動作しています。上記の例では、FOREIGN KEYSを持つテーブルを再作成する必要があります。

パネル内のコマンドは後で見てみましょう。

 
Renat Fatkhullin #:

SQLITE_DEFAULT_FOREIGN_KEYS を使わずにビルドしたのが間違いでした。

これはすでに修正されており、今夜ベータ版として公開される予定です。上記の例では、FOREIGN KEYSを持つテーブルを再作成する必要があります。

パネル内のコマンドについては後ほど説明します。

ありがとうございます!必ずテストします。

 
ホットキーF9 - 実行要求が動作しません。実行」ボタンにカーソルを置くと、宣言された期待値を見ることができる。しかし、コマンドラインにカーソルがある状態でF9を押しても、カーソル(マウスポインタ)を他の(他の)位置に移動させても、宣言したF9は動作しない。マウスを使って「実行」を押すのは魅力的ではない。
 

こんにちは、


「signals.sqlite」データベースを作成し、それが存在することを確認しました。データをデータベースに保存し、63レコードが保存されたことを確認しました。残念ながら、データベースから何も読み取ることができず、データベースをチェックしても「signals.sqlite」ファイルが見つかりません。しかし、XM MT5/Bases/signalsにディレクトリがあり、その中に "signals.dat "というファイルがあります。
問題は、"signals.sqlite "ファイルをどこで見つけることができるか、また、見つからない場合、どのように編集できるかということです。

XM MT5 ビルド 3521 を使用しています。

 
Zbigniew Mirowski .sqlite」データベースを作成し、それが存在することを確認した。データベースにデータを保存し、63レコードが保存されたことを確認しました。残念なことに、データベースから何も読み取ることができず、データベースをチェックしても「signals.sqlite」ファイルが見つかりません。しかし、XM MT5/Bases/signalsにディレクトリがあり、その中に "signals.dat "というファイルがあります。問題は、"signals.sqlite "ファイルはどこにあるのか、また、ない場合、どのように編集できるのかということです。XM MT5 ビルド 3521
を使用しています。

このファイルは、 DATABASE_OPEN_COMMON フラグを使用していない限り、通常「<data folder>MQL5」内に格納されています。

signals.dat」はSQLiteとは関係ありません。

 
Fernando Carreiro #:

DATABASE_OPEN_COMMON フラグを使用しない限り、 ファイルは通常"<data folder>MMQL5EEFiles" に格納される。

signals.dat "はSQLiteとは何の関係もない。

こんにちは、フェルナンド。

しかし、残念ながらファイルディレクトリは空で、このコマンドでデータベースを作成しました:

ファイル名="signals.sqlite"

int db=DatabaseOpen(filename, DATABASE_OPEN_READWRITE | DATABASE_OPEN_CREATE |DATABASE_OPEN_COMMON);

例:DATABASE_OPEN_COMMONフラグ付き


DATABASE_OPEN_COMMON

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


の解釈は?
 

@Zbigniew Mirowski #: I expected it, because it is in the description, but unfortunately the files directory is empty and I created the database with this command:

filename="signals.sqlite"

int db=DatabaseOpen(filename, DATABASE_OPEN_READWRITE | DATABASE_OPEN_CREATE |DATABASE_OPEN_COMMON);

例えば、DATABASE_OPEN_COMMONフラグを使用した場合

DATABASE_OPEN_COMMON

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

を解釈するには?

それなら、"%APPDATA%MetaQuotes\Terminal Common Files"にある。
 
Fernando Carreiro #:
そうすると、"%APPDATA%MetaQuotes\Terminal"にある。

さて、新しい問題が発生した。このエラーは、MT5をCドライブのProgram filesにインストールしたことが原因であり、新しいWin11ではアクセス制限があるのかもしれないという結論に達した。そこで、別のディスクに新しいインスタンスをインストールし、新しいデモ口座を作成し、そこにこのデータベースをインストールしようとしました。
2022.11.30 10:37:26.036 CreateDB (EURUSD,H1) database error, table Signals already exists.
データベースを作成するとき、私はすぐにテーブルを作成します。
コンピュータ全体を検索しても「signals.sqlite」ファイルは見つかりませんでしたが、「signals.dat」ファイルは再び見つかりました。



うわー、signals.sqliteファイルがあった。

signals.sqliteファイルには構造しかないし、signals.datファイルにはデータがあると思う

C: \Usersname\AppData\Roaming\MetaQuotes\Terminal.

 
Zbigniew Mirowski #: うわー、"signals.sqlite "ってファイルがあった

でも、それは私が言った場所と違う?

それなら、"%APPDATA%MetaQuotes\Terminal"にある。