文章 "SQLite: MQL5 原生 SQL 数据库操纵" - 页 11

 
Fernando Carreiro #:

但那不正是我告诉过你可以找到它的地方吗?

那么你可以在"%APPDATA%\MetaQuotes\Terminal\Common\Files"中找到它。

你是对的,但我昨天没有在那里找到它, ,只有在 "signals.sqlite "文件中有结构,我怀疑在signals.dat文件中有数据。

但在文件
参数

文件名

[in] 相对于 "MQL5/Files "文件夹的文件名。

 
Zbigniew Mirowski #:
你是对的,但我昨天没有在那里找到他, ,"signals.sqlite "文件中只有结构,我怀疑 signals.dat 文件中有数据。

不!我已经告诉过您,"signals.dat"是MetaTrader 的内部数据文件,与SQLite 无关。

signals.dat"文件是 MetaTrader 存储信号信息的地方,可以使用交易信号 功能检索信号...

代码库

在 CSV 文件中列出 MT5 信号的所有属性

Fernando Carreiro, 2022.04.21 15:14

这个简单快捷的脚本代码将输出由 MQL5 交易信号功能报告的所有信号属性的 CSV 文件。

Documentation on MQL5: Trade Signals
Documentation on MQL5: Trade Signals
  • www.mql5.com
Trade Signals - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5
 
Zbigniew Mirowski #: 参数, 文件名, [in] 相对于 "MQL5\Files" 文件夹的文件名。

但您使用了"DATABASE_OPEN_COMMON"标记,这会改变位置。因此,如果您不想将其放在常用文件夹中,就不要使用该标记。

数据库打开

文件在所有终端的公共文件夹中

 
Fernando Carreiro #:

但你使用了"DATABASE_OPEN_COMMON"标记,这会改变位置。因此,如果你不想把它放在常用文件夹中,就不要使用该标记。

数据库打开

文件在所有终端的公共文件夹中

好的,我明白了,并在 signal.sqlite-wal 中找到了数据:))

感谢您的帮助)

 
Zbigniew Mirowski #: 好的,我明白了,那么数据在哪里?我上传并收到确认的信号.sqlite 打开了

CS 0 12:43:16.106 SignalsBasa (EURUSD,H1) DB: succesfull
加载数据后的文档仍有 8 kb,我无法加载数据和接收
2022.11.30 12:55:49.103 CreateDB (EURUSD,H1) DB: signals.sqlite opened
2022.11.30 12:55:49.103 CreateDB (EURUSD,H1) 0: 0,0,0.0,0.0

但您已经说过您找到了文件 ...

"Wow, I found the file "signals.sqlite" C:\Users\name\AppData\Roaming\MetaQuotes\Terminal\Common\Files"

那么问题出在哪里呢?

signals.sqlite"文件集结构和数据于一体。通过 MetaEditor 打开它,自己查看数据 -使用 SQL 数据库 - MetaEditor 帮助

 
Zbigniew Mirowski #: 好的,我明白了,并在 signal.sqlite-wal 中找到了数据:))感谢您的帮助)

不客气!

 

MetaEditor 中,最多只能显示 23 列数据库表。

有可能取消这一限制吗?

 
Anatoli Kazharski #:

MetaEditor 中,最多只能显示 23 个 数据库表列。

有可能取消这一限制吗?

已在 beta 3531 中修复,列数增至 64。
 
在某个地方有一个关于单引号双引号 的答案。虽然不是逐字逐句,但与原文很接近--"长期以来一直使用双引号"。目前,回到使用表格的问题上,尝试将文本用双引号写入表格会失败。但是,如果先用单引号再用双引号将文本括起来,就能成功写入。向表格中写入文本时,单引号和双引号的合理规则是什么?
选项和结果 :
成功 - 不成功
         AddTable_TstDate(i,
                          iTime(Symbol(),PERIOD_CURRENT,i),
                          iHigh(Symbol(),PERIOD_CURRENT,i),
                          iTime(Symbol(),PERIOD_CURRENT,i),
                          iLow(Symbol(),PERIOD_CURRENT,i),
                          IntegerToString(iTime(Symbol(),PERIOD_CURRENT,i)),
                          1121,
                          "'string_no_error'");

不成功

         AddTable_TstDate(i,
                          iTime(Symbol(),PERIOD_CURRENT,i),
                          iHigh(Symbol(),PERIOD_CURRENT,i),
                          iTime(Symbol(),PERIOD_CURRENT,i),
                          iLow(Symbol(),PERIOD_CURRENT,i),
                          IntegerToString(iTime(Symbol(),PERIOD_CURRENT,i)),
                          1121,
                          "string_error");

我想指出,将整数转换为字符串在写入表格时不会产生错误。

 

亲爱的开发人员,请告诉我为什么不能从文件(ATTACH DATABASE)附加现有数据库?

那么如何从 RAM 附加数据库 呢?

我附上了代码。

create_databases.mq5 脚本创建一个数据库。attach_mem_db.mq5 脚本从 RAM 附加数据库。但 attach_other_db.mq5 脚本 无法附加现有数据库。

附加的文件: