string query="SELECT COUNT(*) FROM '"+table+"' WHERE low<"+lowLevel+" AND high>"+highLevel+" AND date>'"+TimeToString(time)+"'";
if(sql3.Query(tbl,query)!=SQLITE_DONE)
{
Print(sql3.ErrorMsg());
return0.0;
}
sql3.Disconnect();
CSQLite3Cell cell;
tbl.Cell(0,0,cell);
int gg=cell.GetInt64();
string query="SELECT COUNT(*) FROM '"+table+"' WHERE low<"+lowLevel+" AND high>"+highLevel+" AND date>'"+TimeToString(time)+"'";
if(sql3.Query(tbl,query)!=SQLITE_DONE)
{
Print(sql3.ErrorMsg());
return0.0;
}
sql3.Disconnect();
CSQLite3Cell cell;
tbl.Cell(0,0,cell);
int gg=cell.GetInt64();
コピー構造体の変更に伴い、ByteImg.mqhファイルをユニオンを 使用するように修正。
新しいFastFileをパブリケーションでダウンロードするhttps://www.mql5.com/ru/forum/6291#comment_4967832ggは常に0を出力します。しかし、クエリを直接データベースに入力すると、正しい値を出力します。
また、COUNTの代わりにカラムを指定し、配列のサイズ ArraySize(tbl.m_data)を見ると、すべてうまくいきます。つまり、countは機能しません。何か間違っているのでしょうか?
現在、このエラーが発生しています。
現在このエラーが発生しています。
投稿ありがとうございました。
アーカイブの修正
取引、自動取引システム、取引戦略のテストに関するフォーラム
記事 "SQLとMQL5:SQLiteデータベースでの作業 "についての議論
デニス・カナピス, 2017.06.11 15:28
データベースに直接クエリを入力すると正しい値が出力されますが、ggは常に0を出力します。
また、COUNTの代わりにカラムを指定し、配列サイズArraySize(tbl.m_data)を見ると、すべてがうまくいきます。つまり、countは機能しません。何か間違っているのでしょうか?
COUNTは0を出力しますが、SQLiteStuidoからスクリプトを実行すると、すべてがカウントされます。
実際、これは~10000>ストロークのテーブルで起こることがわかりました。さらに、上記の例のように得られたテーブルtblを(コードに組み込まれた関数によって)印刷すると、INTEGER 型の列は0と 印刷されます。そして、同じ出力ではDOUBLEは 正しく出力されます。
intsでは 何かが間違っているようだ(まだテストする時間がない)。
取引、自動取引システム、取引戦略のテストに関するフォーラム
記事 "SQLとMQL5:SQLiteデータベースでの作業 "についての議論
ビフォアフライト, 2017.08.31 07:55 AM
COUNTは0を出力しますが、SQLiteStuidoからスクリプトを実行すると、すべてがカウントされます。
実際、これは~10000>ストローク数のテーブルで発生することがわかりました。さらに、上記の例のように得られたテーブルtblを(コードに組み込まれた関数によって)印刷すると、INTEGER 型の列は0と 印刷されます。しかし、INTEGER型の列は0と出力されます。
INTEGER 型の列は0と表示されますが、もちろん0ではありません。
見つけたのは、"IncludeMQH¦Ctrl¦ByteImg.mqh "というファイルだ:
の代わりに
という意味らしい:
その後、COUNTとテーブルのプリントアウトはすべて正しくなった。少なくとも僕の テストはパスした。
o_o @Denis Kanapis
IncludeMQH EthernetByteImg.mqh "ファイルにあった:
の代わりに
という意味らしい:
その後、COUNTとテーブルのプリントアウトはすべて正しくなった。少なくとも私の テストはパスした。
デニス・カナピス
このエラーについて君に伝えたかったんだ。)INT値には常に0が与えられていました。
intは ユニオン であるため、SDのバグを説明しています。
union __int { int v; uchar b[4]; };
と
__int d; d.v=0;и
__int d={0};と__intの間に違いはないはずです。
あなたが示したコードの断片は、それがあなたのCOUNTにどのように影響するのか全く理解していません。
なぜなら、ViewInt関数は書き込むのではなく、その逆だからです。そして、d.v.の現在値を気にしません。
-----
ByteImgにあなたが提案した編集を加えました。
しかし、このバグのローカライズと再版をお願いします。今のところ、すべてがバグのように見えますが、間違いなく lib のバグではありません。