MQL5におけるSQLite:新機能とパフォーマンステスト - ページ 4

 
Pavel Kolchin:

端末間でデータをやり取りする場合、片方の端末は編集用、もう片方は読み込み用として接続できるようにしたらどうでしょう。 しかも、すべて超高速メモリーで。

mql4で動作しますか?

Memlib.mqhを使用します。

 
Dmitiry Ananiev:

Memlib.mqhを使用します。

なにがなんだかわからなかった

 
Sergey Dzyublik:

また、私が発見した以下の欠点にもご注目ください。

1)DatabaseExecute 関数の記述は、DatabasePrepareから コピーしたものであり、真ではありません。

2)DatabaseRead 関数の最初のパラメーターの記述が不完全:intdatabase, // DatabaseOpen で取得したデータベースハンドル;
DatabasePrepare の
方がより完全な情報を提供するので。 //クエリハンドルを作成 し、DatabaseRead() で実行できるようにします

5)DatabaseColumnName 関数のパラメータ説明に誤記があります("to get field name "とすべきです)。

string&name//テーブル名を取得するための変数への参照

ありがとうございます、修正しました。最新情報は、ウェブサイトの「データベース管理」セクションで公開される予定です。

Документация по MQL5: Работа с базами данных
Документация по MQL5: Работа с базами данных
  • www.mql5.com
Важной особенностью данного движка является то, что вся база данных находится в единственном стандартном файле, который находится на компьютере пользователя. Простота реализации достигается за счёт того, что перед началом исполнения транзакции записи файл, содержащий базу данных, блокируется. При этом...
 
SQLクエリは特殊な書式を持っています。純粋なSQLではありません。すべて関数呼び出しの中に書かれていて、文字列の間にカンマがない?それとも、文字列の配列を初期化 すればいいのでしょうか?事例が欲しい。
 
Rashid Umarov:

ありがとうございます、修正されました。アップデート内容は、ウェブサイトの「データベースの取り扱いについて」に掲載される予定です。


説明文中のDatabaseReadパラメータが正しくありません。

SQLクエリのハンドルを 取らなければならない。


すでに、インポートしたsqlite3 dllを使ったプロジェクトをビルトイン機能に書き直しましたが、すべてうまくいっています。


追伸:DatabaseのLastErrorのリセット機能を確認してください....の機能を持つ。

 
Renat Fatkhullin:
私たちの目の前には、そのような課題はまったくないのです。

目の前では、そう、いけないのです。一方、開発者は、スレッドセーフなメッセージングメカニズムを長い間必要としてきました。直接ではなく、スレッドセーフなラッパーを追加することで、Baseはこのための良いオプションになるようです。

 
Vasiliy Sokolov:

目の前では、そうですね、そうではありませんね。一方、開発者は、スレッドセーフなメッセージングメカニズムを長い間必要としてきました。直接ではなく、スレッドセーフなラッパーを追加することで、Baseはこのための良いオプションになるようです。

 
Renat Fatkhullin:

ほとんどの場合、リソースを許可して、これらのファイルは、プログラムを最初に実行するときに自動的にディスクに展開されます。

つまり、ex5内部でベースが膨らむことはないのです。ディスク上のファイルしか扱えません。

また、もう一つ必要な機能をご検討ください。
DATABASE_OPEN_MEMORY として開いたデータベースを、ディスクにファイルに保存する関数 DatabaseSaveMemoryToFile が必要です。
それは、データのやりとりの スピードのためにメモリを使用し、必要ならデータをディスクにファイルに保存します。
Market Watch で行われているように、まずデータが Market Watch に来て、その後履歴に保存されます。

そして、ファイルからメモリへ、抽出し直す関数 DatabaseExtractFileToMemory
これがKDB+データベースの仕組みです。
 
あまり知られていないかもしれませんが、ResourceSaveで リソースをディスクに保存する際、色以外のデータが歪んでしまうことがあります。本機能は、画像保存のみを目的としています。

これは、データベースをリソースに含めて、ディスクに保存するという問題に対応するためです。
 
Реter Konow:
あまり知られていないかもしれませんが、ResourceSaveでリソースをディスクに保存する際、色以外のデータが歪んでしまうことがあります。本機能は、画像保存のみを目的としています。

これは、データベースをリソースに含めて、ディスクに保存するかどうかの問題にも通じる。

データベースファイルを リソースに含めるのは、おそらく、ex5から、ファイルをディスクに展開する最初の作業だけを想定しているのでしょう。
データベースに対する更なる作業は、ファイルを用いて直接行われる。