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

 
GEORGI ANIKIN:

こんにちは!

インジケーターでデータベースへの接続を作成しようとしたのですが、なぜかうまくいきませんでした。

どのプログラムでデータベースを使用できるのでしょうか?

どのようなエラーが返ってくるのでしょうか?

 
Rashid Umarov:

どのようなエラーを返しているのですか?

私の投稿にエラーのスクリーンショットをすでに示しました。

そのような関数は見つかりません。

これがそのエラーです:

これは私がインジケーターをコンパイルしようとしているところです。Expert AdvisorとServiceで試すべきですね。


実際、どのMQL5プログラムでデータベースを使用できるかを書くことができます。インジケーターでも使えると便利なのですが。

 
GEORGI ANIKIN:

エラーのスクリーンショットは投稿の中ですでにお見せしました。

そのような機能は見つかりません。

以下がそのエラーです:

これは私がインジケータをコンパイルしようとしているところです。Expert AdvisorとServiceで試してみます。


実際、どのMQL5プログラムでデータベースが使えるか書いてみてください。インジケーターでも使えたら便利だと思う。

プログラムのビルドは?
 
MetaQuotes:
プログラムの構成は?

バージョン5.00、ビルド2361

 
GEORGI ANIKIN:

エラーのスクリーンショットは投稿の中ですでにお見せしました。

これはエラーではありません。エラーはGetLastError 経由で呼び出されます。

 
Rashid Umarov:

これはエラーではない。エラーはGetLastErrorを介して呼び出される。

コンパイルの段階でエラーが発生したと書きました。

 
GEORGI ANIKIN:

コンパイルの段階でエラーが発生したと書いた。

ああ、気づかなかった。

 
DatabasePrepare クエリの説明はSQLiteのドキュメントだけですか?MQL5のドキュメントは ないのですか?
 
Документация по MQL5: Работа с базами данных / DatabaseReset
Документация по MQL5: Работа с базами данных / DatabaseReset
  • www.mql5.com
//| Script program start function                                    | "PATH           TEXT            ," "SPREAD         INT             ," //| Возвращает спецификацию символа в виде JSON                      | //| Формирует отступ из пробелов                                     |...
 

記事から、困難ではあるが、次の例を理解した。

//--- クエリーを作成し、それを処理する
   int request=DatabasePrepare(db, "SELECT * FROM COMPANY WHERE SALARY>15000");
   if(request==INVALID_HANDLE)
     {
      Print("DB: ", filename, " request failed with code ", GetLastError());
      DatabaseClose(db);
      return;
     }

このクエリは、データベースから15000より大きな値を持つレコードを選択します。別の例では、合計を選択する...とありました。しかし、私は、例えば、データベースから最小/最大値を選択する必要があります。あるいは、ゼロより大きい/小さい値の合計を選択したい。そのような可能性はあると思いますが、MQL5のドキュメントには十分な情報がありません。例から引っ張ってくるのは私には難しい。でも、なければないで・・・。必要であれば、何とかしてみます。