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

 
您希望在哪个文件夹中找到它?仔细查看开头的标志
 
Rashid Umarov:
您希望在哪个文件夹中找到它?仔细查看打开标志

这里是标志 - int db=DatabaseOpen(filename, DATABASE_OPEN_READWRITE | DATABASE_OPEN_CREATE | DATABASE_OPEN_COMMON);

根据 MQL5/Files 软件包中的帮助,我希望看到它。

但那里什么也没有

 
Rashid Umarov:
您希望在哪个文件夹中找到它?仔细看看开头的标志

我录了一段视频。也许出了什么问题....



 
Tango_X:

以下是标志 - int db=DatabaseOpen(filename, DATABASE_OPEN_READWRITE | DATABASE_OPEN_CREATE |DATABASE_OPEN_COMMON);

根据 MQL5/Files 软件包中的帮助,我希望看到

但那里什么也没有

DATABASE_OPEN_COMMON 不在您要找的地方。


 
Alexey Viktorov:

DATABASE_OPEN_COMMON 不在您要查找的位置。


谢谢!

 

亲爱的开发人员,大家好!

我非常喜欢在 MT5 中使用 SQLite,因为这一创新的所有优点都让我耳目一新,我想补充....p.1 ))))

1.可以在查询中添加对 JSON 函数的支持,从 SQLite 的角度来看,这一功能已经实现了很长时间,我在其他程序中也在积极使用它......,我希望在 MT5 中使用它,因为:

1.1 非常方便,解析和收集 JSON 的速度非常快

1.2 无需使用第三方库来构建和反汇编响应

1.3 能够批量保存数据,并通过 SQL 查询在基础端进行处理

1.4 如果服务器响应发生变化或在其他情况下,只需更改 SQL 查询即可,无需重新编译程序。

这只是其优点的一部分......而这些优点在 MT5 的当前实现中并不存在,我假设旧版本的 SQLite 已连接到 MT5....。

一般来说,这为大型项目在多服务器系统中的扩展提供了很多机会,因为每个数据提供者都有自己的结构等。



2.阅读以前关于一次性访问数据库的文章....。

我个人推荐并使用:PRAGMA journal_mode = WAL;

这解决了数据库多访问的很多问题,并增加了 SQLite 的严肃性...

2.1 最好从预先准备好的文本文件中创建数据库,并将 SQL 代码作为资源附加到项目中,然后将其作为变量字符串使用

2.2 将所有查询创建为资源文件也很方便,如果需要更改查询中的数据,可以使用 StringFormat...


3.在我的每个大型项目中,我都尝试使用当前 MT5 和 SQLite 之间的交互机制,这让我的数据处理工作变得非常方便,非常感谢!

 
Daniil Kurmyshev:

亲爱的开发人员,大家好!

我非常喜欢在 MT5 中使用 SQLite,因为我被这一创新的所有优势所渗透,我想添加....p.1 )))。

1.有可能在查询中添加对 JSON 函数的支持,从 SQLite 的角度来看,这一功能已经实现了很长时间,我在其他程序中也积极使用了这一功能......,我希望在 MT5 中也添加这一功能:

1.1 非常方便,解析和收集 JSON 的速度非常快

1.2 无需使用第三方库来构建和反汇编响应

1.3 可以批量保存数据,并通过 SQL 查询在基础端进行处理

1.4 如果服务器响应发生变化或在其他情况下,只需更改 SQL 查询,而无需重新编译程序,并且

这只是其优点的一部分......目前 MT5 的实现中并不具备这些优点,我假设旧版本的 SQLite 与 MT5 相连....。

总的来说,它为大型项目提供了很多机会,可以在多服务器系统中进行扩展,每个数据提供者都有自己的结构等...



2.我阅读了以前关于一次性访问数据库的文章....。

我个人推荐并使用: PRAGMA journal_mode = WAL;

这解决了数据库多访问的许多问题,并提高了 SQLite 的严肃性...

2.1 最好从预先准备好的文本文件中创建数据库,并将 SQL 代码作为资源附加到项目中,然后将其作为变量字符串使用

2.2 将所有查询创建为资源文件也很方便,如果需要更改查询中的数据,可以使用 StringFormat...


3.在我的每个大型项目中,我都尝试使用当前 MT5 和 SQLite 之间的交互机制,这让我的数据处理工作变得非常方便,非常感谢!

当然,如果能让不同脚本同时访问数据库就更好了。开发人员没有考虑到这一点 ((().

显然,他们不想进一步开发 MQL5 工具。

 
GEORGI ANIKIN:

如果能让不同的脚本同时访问数据库就更好了。开发人员没有考虑到这一点 ((

显然,他们不想进一步开发 MQL5 工具。

他们当然考虑过这个问题。

您可以从终端内的不同脚本访问相同的数据库和表格。

下面是一个同时写入和读取的示例。在不同的图表上运行。

附加的文件:
 
Renat Fatkhullin:

我们当然知道。

您可以通过终端内的不同脚本访问相同的数据库和表格。

下面是一个同时写入和读取的示例。在不同的图表上运行

雷纳特,你好!

您能告诉我至少在不久的将来能否在数据库中存储 JSON 并使用它吗?

 
Daniil Kurmyshev:

雷纳特,你好

您能告诉我,至少在不久的将来,是否会实现在数据库中存储 JSON 并对其进行处理的功能?

明天就会在 2840 测试版中实现:

  • SQLite 2.35.2 版本

  • 永久 WAL 模式,允许在不同应用程序中使用打开的数据库(以前 MetaEditor 无法与终端并行工作)

  • 扩展统计功能
        mode - mode,
        median - median (50 th percentile),
        percentile_25 - 25 th percentile,
        percentile_75 - 75 th percentile,
        percentile_90 - 90 th percentile,
        percentile_95 - 95 th percentile,
        percentile_99 - 99 th percentile,
        stddev or stddev_samp - sample standard deviation,
        stddev_pop - population standard deviation,
        variance or var_samp - sample variance,
        var_pop - population variance.
    示例:
    select
      count(*) as book_count,
      cast(avg(parent) as integer) as mean,
      cast(median(parent) as integer) as median,
      mode(parent) as mode,
      percentile_90(parent) as p90,
      percentile_95(parent) as p95,
      percentile_99(parent) as p99
    from bookmarks;
  • 新的数学函数
        acos(X)
        acosh(X)
        asin(X)
        asinh(X)
        atan(X)
        atan2(X,Y)
        atanh(X)
        ceil(X)
        ceiling(X)
        cos(X)
        cosh(X)
        degrees(X)
        exp(X)
        floor(X)
        ln(X)
        log(B,X)
        log(X)
        log10(X)
        log2(X)
        mod(X,Y)
        pi()
        pow(X,Y)
        power(X,Y)
        radians(X)
        sin(X)
        sinh(X)
        sqrt(X)
        tan(X)
        tanh(X)
        trunc(X)
    
    
  • 还包括JSON 支持

    我们稍后将在数据库创建向导中加入新的 json 类型。