Discussão do artigo "SQLite: trabalho nativo com bancos de dados SQL em MQL5" - página 6

 
Em que pasta você espera encontrá-la? Observe atentamente as bandeiras de abertura
 
Rashid Umarov:
Em que pasta você espera encontrá-la? Observe atentamente os sinalizadores de abertura

Aqui estão os sinalizadores - int db=DatabaseOpen(filename, DATABASE_OPEN_READWRITE | DATABASE_OPEN_CREATE | DATABASE_OPEN_COMMON);

Eu esperava ver isso de acordo com a ajuda do pacote MQL5/Files.

Mas não há nada lá

 
Rashid Umarov:
Em que pasta você espera encontrá-lo? Dê uma olhada nas bandeiras de abertura

Fiz um vídeo meu fazendo isso. Talvez algo esteja errado....



 
Tango_X:

Aqui estão os sinalizadores - int db=DatabaseOpen(filename, DATABASE_OPEN_READWRITE | DATABASE_OPEN_CREATE |DATABASE_OPEN_COMMON);

De acordo com a ajuda do pacote MQL5/Files, espero ver

Mas não há nada lá

DATABASE_OPEN_COMMON não está onde você está procurando.


 
Alexey Viktorov:

DATABASE_OPEN_COMMON não está onde você está procurando.


Obrigado!

 

Caros desenvolvedores, bom dia a todos!

Eu gosto MUITO do uso do SQLite no MT5, como estou penetrado por todas as vantagens dessa inovação, gostaria de acrescentar....p.1 ))))

1. É possível adicionar suporte para funções JSON dentro de consultas. Do lado do SQLite, esse recurso foi implementado há bastante tempo e eu o uso ativamente em outros programas..., e eu gostaria de usá-lo no MT5, porque:

1.1 É muito conveniente, a análise e a coleta de JSON funcionam de imediato e com muita rapidez

1.2 Não há necessidade de usar bibliotecas de terceiros para criar e desmontar respostas

1.3 Capacidade de salvar dados em lotes e processá-los na base por meio de consulta SQL

1.4 Se a resposta do servidor tiver mudado ou em algum outro caso, basta alterar a consulta SQL e não recompilar o programa.

essa é apenas uma parte das vantagens... que não estão presentes na implementação atual do MT5; presumo que uma versão antiga do SQLite esteja conectada ao MT5....

Em geral, isso oferece muitas oportunidades para que grandes projetos sejam escalonados em sistemas com vários servidores, em que cada provedor de dados tem suas próprias estruturas etc.



2. Leia as postagens anteriores sobre o tópico de acesso único para gravação e leitura do banco de dados....

Eu pessoalmente recomendo e uso: PRAGMA journal_mode = WAL;

isso resolve muitos problemas com o multiacesso ao banco de dados e aumenta a seriedade do SQLite...

2.1 É melhor criar o banco de dados a partir de um arquivo de texto pré-preparado com código SQL anexado ao projeto como um recurso e usá-lo como uma string variável

2.2 Também é conveniente criar todas as consultas como arquivos de recurso e, se for necessário alterar os dados em uma consulta, você poderá usar StringFormat...


3. Em cada um de meus grandes projetos, tento usar o mecanismo atual de interação entre o MT5 e o SQLite, que se tornou muito conveniente para trabalhar com dados.

 
Daniil Kurmyshev:

Caros desenvolvedores, bom dia a todos!

Gosto MUITO do uso do SQLite no MT5, como estou penetrado por todas as vantagens dessa inovação, gostaria de acrescentar....p.1 ))).

1. É possível adicionar suporte para funções JSON dentro de consultas. Do lado do SQLite, esse recurso foi implementado há bastante tempo e eu o uso ativamente em outros programas..., e gostaria de adicioná-lo ao MT5 também:

1.1 É muito conveniente, a análise e a coleta de JSON funcionam de forma rápida e imediata

1.2 Não há necessidade de usar bibliotecas de terceiros para criar e desmontar respostas

1.3 Capacidade de salvar dados em lotes e processar na base por meio de consulta SQL

1.4 Se a resposta do servidor tiver mudado ou em algum outro caso, basta alterar a consulta SQL e não recompilar o programa e

essa é apenas uma parte das vantagens... que não estão presentes na implementação atual do MT5. Presumo que uma versão antiga do SQLite esteja conectada ao MT5....

Em geral, ele oferece muitas oportunidades para grandes projetos de escalonamento em sistemas multisservidores em que cada provedor de dados tem suas próprias estruturas, etc...



2. Li postagens anteriores sobre o tópico de acesso único para gravação e leitura do banco de dados....

Eu pessoalmente recomendo e uso: PRAGMA journal_mode = WAL;

isso resolve muitos problemas com o acesso múltiplo ao banco de dados e aumenta a seriedade do SQLite...

2.1 É melhor criar um banco de dados a partir de um arquivo de texto pré-preparado com código SQL anexado ao projeto como um recurso e usá-lo como uma string variável

2.2 Também é conveniente criar todas as consultas como arquivos de recursos e, se for necessário alterar os dados em uma consulta, você poderá usar StringFormat...


3. Em cada um de meus grandes projetos, tento usar o mecanismo atual de interação entre o MT5 e o SQLite, que se tornou muito conveniente para trabalhar com dados.

É claro que seria bom dar a possibilidade de acesso simultâneo ao banco de dados para diferentes scripts. Os desenvolvedores não pensaram nisso ((((.

Aparentemente, eles não querem continuar a desenvolver as ferramentas MQL5.

 
GEORGI ANIKIN:

Seria bom dar a possibilidade de acesso simultâneo ao banco de dados para diferentes scripts. Os desenvolvedores não pensaram nisso ((

Aparentemente, eles não querem continuar a desenvolver as ferramentas MQL5.

É claro que eles pensaram nisso.

Você pode acessar as mesmas bases e tabelas de diferentes scripts dentro do terminal.

Aqui está um exemplo de um escritor e leitor simultâneos. Execute-o em diferentes gráficos.

Arquivos anexados:
 
Renat Fatkhullin:

É claro que sim.

Você pode acessar os mesmos bancos de dados e tabelas de diferentes scripts dentro do terminal.

Aqui está um exemplo de um escritor e leitor simultâneos. Execute-o em gráficos diferentes.

Renat, olá!

Você pode me dizer se a possibilidade de armazenar JSON no banco de dados e trabalhar com ele será implementada, pelo menos em um futuro próximo?

 
Daniil Kurmyshev:

Renat, olá!

Você pode me dizer se a capacidade de armazenar JSON no banco de dados e trabalhar com ele será implementada, pelo menos em um futuro próximo?

Ele estará na versão beta 2840 amanhã:

  • SQLite versão 2.35.2

  • modo WAL permanente, permitindo trabalhar com o banco de dados aberto a partir de diferentes aplicativos (anteriormente, o MetaEditor não podia trabalhar em paralelo com o terminal)

  • extensão das funções estatísticas
        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.
    exemplo:
    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;
  • novas funções matemáticas
        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)
    
    
  • O suporte a JSON também foi incluído

    Incluiremos um novo tipo de json no assistente de criação de banco de dados posteriormente.