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

 
Renat Fatkhullin #:
Obrigado, vamos dar uma olhada.

Da mesma forma!

Você também deve verificar ON DELETE e ON UPDATE:

  • SEM AÇÃO
  • SET NULL
  • SET DEFAULT
  • RESTRICT
  • CASCADE

Sem isso, o trabalho se torna muito complicado.

 
Anatoli Kazharski #:

Obrigado pela resposta!

Por algum motivo, não estou obtendo o resultado esperado:

//---

Onde está o erro?

E isso é algo com que eu também gostaria de lidar:

Nosso erro foi construir sem SQLITE_DEFAULT_FOREIGN_KEYS.

Já foi corrigido e está funcionando - estará disponível na versão beta hoje à noite. A tabela com FOREIGN KEYS precisará ser recriada para o exemplo acima.

Mais tarde, daremos uma olhada nos comandos do painel.

 
Renat Fatkhullin #:

Nosso erro foi criar sem o SQLITE_DEFAULT_FOREIGN_KEYS.

Isso já foi corrigido e está funcionando - estará disponível na versão beta hoje à noite. A tabela com FOREIGN KEYS precisará ser recriada para o exemplo acima.

Veremos os comandos no painel mais tarde.

Obrigado! Com certeza vou testá-lo.

 
A tecla de atalho F9 - executar solicitação não funciona. Você pode ver a expectativa da declaração se colocar o cursor no botão "Executar". Mas, nem ao pressionar F9 com o cursor na linha de comando, nem ao mover o cursor (ponteiro do mouse) para outras (outras) posições, a F9 declarada não funciona. Usar o mouse para pressionar "Executar" não é atraente.
 

Hi,

Algo parece não estar certo.
Criei um banco de dados "signals.sqlite" e recebi a confirmação de que ele existe. Salvei os dados no banco de dados e recebi a confirmação de que 63 registros foram salvos. Infelizmente, não consigo ler nada do banco de dados e, quando verifico o banco de dados, não consigo encontrar o arquivo "signals.sqlite". No entanto, encontro o diretório em XM MT5/Bases/signals e, nesse diretório, o arquivo "signals.dat", que é ilegível para mim e tem um tamanho de 3845 kb.
A pergunta é: onde posso encontrar o arquivo "signals.sqlite" e, se não encontrar, como posso editá-lo?

Eu uso o XM MT5 build 3521

[Excluído]  
Zbigniew Mirowski .sqlite" e recebi a confirmação de que ele existe. Salvei os dados no banco de dados e recebi a confirmação de que 63 registros foram salvos. Infelizmente, não consigo ler nada do banco de dados e, quando verifico o banco de dados, não consigo encontrar o arquivo "signals.sqlite". No entanto, encontro o diretório em XM MT5/Bases/signals e, nesse diretório, o arquivo "signals.dat", que é ilegível para mim e tem um tamanho de 3845 kb. A pergunta é: onde posso encontrar o arquivo "signals.sqlite" e, caso contrário, como posso editá-lo? Eu uso o XM MT5 build 3521

O arquivo geralmente é armazenado em "<data folder>\MQL5\Files", a menos que você tenha usado o sinalizador DATABASE_OPEN_COMMON.

O "signals.dat" não tem nada a ver com o SQLite.

 
Fernando Carreiro #:

O arquivo geralmente é armazenado em "<pasta de dados>\MQL5\Files", a menos que você tenha usado o sinalizador DATABASE_OPEN_COMMON.

O "signals.dat" não tem nada a ver com o SQLite.

Olá, Fernando, obrigado pela resposta

Eu esperava isso, porque está na descrição, mas infelizmente o diretório de arquivos está vazio e eu criei o banco de dados com esse comando:

filename="signals.sqlite"

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

Por exemplo, com o sinalizador DATABASE_OPEN_COMMON


DATABASE_OPEN_COMMON

O arquivo está na pasta comum de todos os terminais


como interpretar ii?
[Excluído]  

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

Por exemplo, com o sinalizador DATABASE_OPEN_COMMON

DATABASE_OPEN_COMMON

O arquivo está na pasta comum de todos os terminais

como interpretar ii?

Então você o encontrará em"%APPDATA%\MetaQuotes\Terminal\Common\Files".
 
Fernando Carreiro #:
Em seguida, você o encontrará em"%APPDATA%\MetaQuotes\Terminal\Common\Files".

Bem, agora tenho um novo problema. Cheguei à conclusão de que talvez o erro esteja no fato de eu ter instalado esse MT5 na unidade C, em Arquivos de programas, e talvez haja algumas restrições de acesso no novo Win11. Então, instalei uma nova instância em outro disco, uma nova conta demo e tentei instalar esse banco de dados lá e... Recebi:
2022.11.30 10:37:26.036 CreateDB (EURUSD,H1) database error, table Signals already exists.
Ao criar um banco de dados, eu imediatamente crio tabelas. O Create não gera um erro, porque também está abrindo o banco de dados, mas a criação de uma tabela gera um erro.
Procurei em todo o computador e os arquivos "signals.sqlite" não foram encontrados, mas encontrei o arquivo "signals.dat" novamente

Uau, encontrei o arquivo "signals.sqlite"

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

Há apenas estrutura no arquivo "signals.sqlite" e suspeito que haja dados no arquivo signals.dat

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

[Excluído]  
Zbigniew Mirowski #: Uau, encontrei o arquivo "signals.sqlite" C:\Users\name\AppData\Roaming\MetaQuotes\Terminal\Common\Files

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

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