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 文件以使用联合体
在其出版物中下载新的 FastFilehttps://www.mql5.com/ru/forum/6291#comment_4967832如果将查询直接输入数据库,则会输出正确的值。
如果不输入 COUNT,而是输入某个列,然后查看数组大小 ArraySize(tbl.m_data),则一切正常。也就是说,count不起作用。我不知道,也许我做错了什么.....。
我现在遇到了这个错误,有人能帮我吗?
我现在遇到了这个错误,有人能帮我吗?
感谢发布
存档中的修复
关于交易、自动交易系统和交易策略测试的论坛
讨论文章 "SQL 和 MQL5:使用 SQLite 数据库"
Denis Kanapis, 2017.06.11 15:28
gg总是输出0,但如果直接在数据库中输入查询,则会输出正确的值。
如果用某一列代替 COUNT,然后查看数组大小 ArraySize(tbl.m_data),则一切正常。也就是说,count不起作用。我不知道,也许我做错了什么.....。
同样的情况 - COUNT 输出为 0,但从 SQLiteStuido 运行脚本时,一切都计数。
在实践中发现,这种情况发生在具有 ~10000>number ofStrokes 的表中。此外,如果像上例中那样打印得到的表tbl(通过代码中内置的函数),INTEGER 类型的列将被打印为 0,当然它们并不是 0。而在同样的打印输出中,DOUBLE 的 输出是正确的。
ints 似乎出了问题(我还没来得及测试)。
关于交易、自动交易系统和交易策略测试的论坛
讨论文章 "SQL 和 MQL5:使用 SQLite 数据库"
BeforeFlight, 2017.08.31 07:55 AM
同样的事情 - COUNT 输出为 0,但从 SQLiteStuido 运行脚本时 - 一切都计数。
实际发现,这种情况发生在具有 ~10000>number ofStrokes 的表上。此外,如果打印(通过代码中内置的函数)所获得的表tbl,INTEGER 类型的列将被打印为 0,当然它们并不是 0。而在同样的打印输出中,DOUBLE 的 输出是正确的。
ints 似乎出了问题(我还没来得及测试)。
我在文件 "Include\MQH\Ctrl\ByteImg.mqh "中找到了它:
而不是
显然是指
之后,COUNT 和表格的打印输出一切正常。至少我的 测试通过了。
@o_o @Denis Kanapis
找到了,在 "Include\MQH\Ctrl\ByteImg.mqh" 文件里:
而不是
显然是指
之后,COUNT 和表格的打印输出一切正常。至少我的 测试通过了。
@o_o @Denis Kanapis
我只是想告诉你这个错误,你比我更早知道:)。对于 INT 值,一直都是 0。
你描述了 SD 的一个错误,因为__int 是union
union __int { int v; uchar b[4]; };
和
__int d; d.v=0;и
__int d={0};和
您所展示的代码片段完全不理解它是如何影响您的 COUNT 的。
因为 ViewInt 函数不会写入,而是恰恰相反--它会读取d.v. 中的数字。它并不关心 d.v 的当前值。
-----
我在 ByteImg 中添加了您建议的编辑,让您感觉更舒适。
但请您将此错误本地化并提供重印本。因为到目前为止,一切看起来都像是一个错误,但绝对不是程序库的错误。