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

 
Renat Fatkhullin #:
谢谢,我们会去看看的。

同样!

您还应检查ON DELETEON UPDATE

  • 无操作
  • 设置为空
  • 设置默认值
  • 限制
  • 取消

如果不这样做,工作就会变得非常复杂。

 
Anatoli Kazharski #:

感谢您的回复!

由于某些原因,我没有得到预期的结果:

//---

错误出在哪里?

这也是我想解决的问题:

我们的错误在于在构建时没有使用 SQLITE_DEFAULT_FOREIGN_KEYS。

已经修复并投入使用,今晚将推出测试版。在上面的示例中,需要重新创建带有 FOREIGN KEYS 的表。

我们稍后将查看面板中的命令。

 
Renat Fatkhullin #:

我们的错误在于在构建时没有使用 SQLITE_DEFAULT_FOREIGN_KEYS。

我们已经修复了这一错误,并将于今晚发布测试版。在上面的示例中,需要重新创建带有 FOREIGN KEYS 的表。

我们稍后将查看面板中的命令。

谢谢!我一定会进行测试。

 
热键 F9 - 执行请求不起作用。如果将光标放在 "Execute(执行)"按钮上,就可以看到所声明的期望值。但是,无论是在光标位于命令行的情况下按下 F9,还是将光标(鼠标指针)移动到其他(其他)位置,所声明的 F9 都不起作用。使用鼠标按下 "运行 "按钮并不吸引人。
 

你好、


我创建了一个 "signals.sqlite"数据库,并确认它存在。我将数据保存到数据库,并确认保存了 63 条记录。遗憾的是,我无法从数据库中读取任何内容,而且当我检查数据库时,也找不到 "signals.sqlite "文件。不过,我在 XM MT5/Bases/signals 目录中找到了 "signals.dat "文件,该文件无法读取,大小为 3845 kb。
问题是,我在哪里可以找到 "signals.sqlite "文件,如果找不到,如何编辑它?

我使用的是 XM MT5 3521 版本。

 
Zbigniew Mirowski signals.sqlite"数据库,并确认它存在。我将数据保存到数据库,并确认保存了 63 条记录。遗憾的是,我无法从数据库中读取任何内容,而且当我检查数据库时,也找不到 "signals.sqlite "文件。不过,我在 XM MT5/Bases/signals 目录中找到了 "signals.dat "文件,该文件无法读取,大小为 3845 kb。问题是我在哪里可以找到 "signals.sqlite "文件,如果找不到,我该如何编辑它?我使用的是 XM MT5 build 3521

该文件通常存储在"<数据文件夹>\MQL5\Files"中,除非您使用了 DATABASE_OPEN_COMMON 标志。

signals.dat "与 SQLite 无关。

 
Fernando Carreiro #:

该文件通常存储在"<数据文件夹>\MQL5\Files"中,除非使用了 DATABASE_OPEN_COMMON 标志。

signals.dat "与 SQLite 无关。

嗨,费尔南多,感谢您的回答

我早就料到会这样,因为在说明中已经提到了,但不幸的是,文件目录是空的,而我是用这条命令创建的数据库:

filename="signals.sqlite"

int db=DatabaseOpen(filename, DATABASE_OPEN_READWRITE | DATABASE_OPEN_CREATE |DATABASE_OPEN_COMMON);

例如,使用 DATABASE_OPEN_COMMON 标志


数据库打开

该文件位于所有终端的公共文件夹中


如何解释 ii?
 

@Zbigniew Mirowski #: I expected it, because it is in the description, but unfortunately the files directory is empty and I created the database with this command:

filename="signals.sqlite"

int db=DatabaseOpen(filename, DATABASE_OPEN_READWRITE | DATABASE_OPEN_CREATE |DATABASE_OPEN_COMMON);

例如,使用 DATABASE_OPEN_COMMON 标志时

数据库打开

该文件位于所有终端的公共文件夹中。

如何解释 ii?

您可以在"%APPDATA%\MetaQuotes\Terminal\Common\Files"中找到它。
 
Fernando Carreiro #:
然后你就可以在"%APPDATA%\MetaQuotes\Terminal\Common\Files" 中找到它。

现在我又遇到了新问题。我得出的结论是,也许错误在于我将 MT5 安装在了 C 盘的程序文件中,而新的 Win11 可能有一些访问限制。因此,我在另一个磁盘上安装了一个新的实例、新的模拟账户,并尝试在那里安装该数据库,结果......我得到了:
2022.11.30 10:37:26.036 CreateDB (EURUSD,H1) 数据库错误,表 Signals 已经存在。
创建数据库时,我立即创建了表。
我搜索了整个计算机,没有找到 "signals.sqlite "文件,但我又找到了 "signals.dat "文件。

哇,我找到了 "signals.sqlite "文件

C:\Users\name\AppData\Roaming\MetaQuotes\Terminal\Common\Files

signals.sqlite "文件中只有结构,我怀疑signals.dat文件中有数据

C:\Users\name\AppData\Roaming\MetaQuotes\Terminal\Common\Files

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

但这不正是我告诉你的地方吗?

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