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

 
Fernando Carreiro #:

Mas não é exatamente onde eu lhe disse que você o encontraria?

Então você o encontrará em "%APPDATA%\MetaQuotes\Terminal\Common\Files".

Você estava certo, mas não o encontrei lá ontem, há apenas estrutura no arquivo "signals.sqlite" e suspeito que haja dados no arquivo signals.dat

mas está na documentação
parameters

filename

[in] Nome do arquivo relativo à pasta "MQL5\Files".

[Excluído]  
Zbigniew Mirowski #:
Você estava certo, mas não o encontrei lá ontem, . Só há estrutura no arquivo "signals.sqlite" e suspeito que haja dados no arquivo signals.dat

Não! Eu já lhe disse que o"signals.dat" é um arquivo de dados interno do MetaTrader e não tem nada a ver com o SQLite.

O arquivo"signals.dat" é onde o MetaTrader armazena as informações sobre os sinais que podem ser recuperados com a funcionalidade Trade Signals...

Base de código

Listagem de todas as propriedades dos sinais MT5 em um arquivo CSV

Fernando Carreiro, 2022.04.21 15:14

Esse código de script simples e rápido produzirá um arquivo CSV com todas as propriedades dos sinais, conforme relatado pela funcionalidade MQL5 Trade Signals.

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
[Excluído]  
Zbigniew Mirowski #: mas isso está na documentação. parameters, filename, [in] Nome do arquivo relativo à pasta "MQL5\Files".

Mas você usou o sinalizador"DATABASE_OPEN_COMMON", que altera o local. Portanto, não use esse sinalizador se não quiser que ele esteja na pasta comum.

DATABASE_OPEN_COMMON

O arquivo está na pasta comum de todos os terminais

 
Fernando Carreiro #:

Mas você usou o sinalizador"DATABASE_OPEN_COMMON", que altera o local. Portanto, não use esse sinalizador se não quiser que ele fique na pasta comum.

DATABASE_OPEN_COMMON

O arquivo está na pasta comum de todos os terminais

Ok, entendi e encontrei os dados em signals.sqlite-wal:))

Obrigado por sua ajuda)

[Excluído]  
Zbigniew Mirowski #: Ok, entendi. Então, onde estão os dados? Eu carrego e recebo a confirmação signals.sqlite aberta

CS 0 12:43:16.106 SignalsBasa (EURUSD,H1) DB: succesfull
O documento depois de carregar os dados ainda tem 8 kb e eu não consigo carregar os dados e receber
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,0

Mas você já declarou que encontrou o arquivo ...

"Uau, encontrei o arquivo "signals.sqlite" C:\Users\name\AppData\Roaming\MetaQuotes\Terminal\Common\Files"

Então, qual é o problema?

O arquivo"signals.sqlite" terá estrutura e dados em um só. Abra-o no MetaEditor e veja os dados por si mesmo - Trabalhando com bancos de dados SQL - Ajuda do MetaEditor

[Excluído]  
Zbigniew Mirowski #: Ok, entendi e encontrei os dados em signals.sqlite-wal:)) Obrigado por sua ajuda)

De nada!

 

No MetaEditor, o número máximo de colunas das tabelas de banco de dados a serem exibidas é de apenas 23.

É possível remover essa limitação?

 
Anatoli Kazharski #:

No MetaEditor, o número máximo de colunas da tabela do banco de dados a serem exibidas é de apenas 23.

É possível remover essa limitação?

Corrigido na versão beta 3531 com o aumento das colunas para 64.
 
Em algum momento, em algum lugar, houve uma resposta sobre aspas simples e duplas. Não literalmente, mas próximo ao texto - "está trabalhando há muito tempo com aspas duplas". No momento, voltando ao trabalho com tabelas, uma tentativa de escrever um texto entre aspas duplas em uma tabela falha. Entretanto, ao colocar o texto entre aspas simples e, em seguida, entre aspas duplas, a gravação é concluída com êxito. Qual é a regra correta de aspas simples e duplas para escrever texto em uma tabela?
Opções e resultados :
bem-sucedida -
         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'");

sem sucesso -

         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");

Gostaria de salientar que a conversão de um número inteiro em uma cadeia de caracteres não produz um erro ao gravar em uma tabela.

 

Caros desenvolvedores, por favor, me digam por que não é possível anexar um banco de dados existente a partir de um arquivo (ATTACH DATABASE)?

Então, como é possível anexar uma base a partir da RAM...?

Anexei o código.

O script create_databases.mq5 cria um banco de dados. O script attach_mem_db.mq5 anexa o banco de dados da RAM. Mas o script attach_other_db.mq5 não consegue anexar um banco de dados existente.

Arquivos anexados: