Discusión sobre el artículo "SQLite: trabajo nativo con bases de datos en SQL en MQL5" - página 11

 
Fernando Carreiro #:

¿Pero no es exactamente donde te dije que lo encontrarías?

Entonces lo encontrará en "%APPDATA%\MetaQuotes\Terminal\Common\Files".

Tenías razón, pero ayer no lo encontré allí, sólo hay estructura en el archivo "signals.sqlite" y sospecho que hay datos en el archivo signals.dat

pero está en la documentación
parameters

filename

[in] Nombre del archivo relativo a la carpeta "MQL5\Files".

[Eliminado]  
Zbigniew Mirowski #:
Tenías razón, pero ayer no lo encontré allí, sólo hay estructura en el fichero "signals.sqlite" y sospecho que hay datos en el fichero signals.dat

No! ya te he dicho que el "signals.dat" es un fichero de datos interno de MetaTrader y no tiene nada que ver con SQLite.

El fichero"signals.dat" es donde MetaTrader almacena la información sobre las señales que se pueden recuperar con la funcionalidad de Señales de Operación...

Código Base

Listar todas las propiedades de las Señales MT5 a un fichero CSV

Fernando Carreiro, 2022.04.21 15:14

Este sencillo y rápido código script generará un fichero CSV con todas las propiedades de las Señales tal y como son reportadas por la funcionalidad 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
[Eliminado]  
Zbigniew Mirowski #: pero está en la documentación. parameters, filename, [in] Nombre de archivo relativo a la carpeta "MQL5\Files".

Pero has utilizado la bandera"DATABASE_OPEN_COMMON" que cambia la ubicación. Así que no uses esa bandera si no lo quieres en la carpeta común.

DATABASE_OPEN_COMMON

El archivo está en la carpeta común de todos los terminales

 
Fernando Carreiro #:

Pero usted utilizó la bandera"DATABASE_OPEN_COMMON" que cambia la localización. Así que no utilice esa bandera si no lo quieres en la carpeta común.

DATABASE_OPEN_COMMON

El archivo está en la carpeta común de todos los terminales

ok, entiendo y encuentro los datos en signals.sqlite-wal:))

Gracias por su ayuda)

[Eliminado]  
Zbigniew Mirowski #: ok, entiendo ¿Entonces donde están los datos? He cargado y recibido la confirmación signals.sqlite abierto

CS 0 12:43:16.106 SignalsBasa (EURUSD,H1) DB: succesfull
El documento después de cargar los datos es todavía 8 kb y no puedo cargar los datos y recibir
2022.11.30 12:55:49.103 CreateDB (EURUSD,H1) DB: signals.sqlite abrió
2022.11.30 12:55:49.103 CreateDB (EURUSD,H1) 0: 0,0,0,0.0

Pero usted ya ha declarado que encontró el archivo ...

"Wow, he encontrado el archivo "signals.sqlite" C:\sers\name\AppData\Roaming\MetaQuotes\Terminal\Common\Files"

¿Cuál es el problema?

El archivo"signals.sqlite" tendrá estructura y datos todo en uno. Abrirlo a través de MetaEditor y ver los datos por sí mismo - Trabajar con bases de datos SQL - Ayuda MetaEditor

[Eliminado]  
Zbigniew Mirowski #: ok, entiendo y encontrar datos en signals.sqlite-wal:)) Gracias por su ayuda)

¡De nada!

 

En el MetaEditor, el número máximo de columnas de tablas de bases de datos que se pueden mostrar es sólo 23.

¿Es posible eliminar esta limitación?

 
Anatoli Kazharski #:

En el MetaEditor, el número máximo de columnas de tabla de base de datos a mostrar es sólo 23.

¿Es posible eliminar esta limitación?

Corregido en la beta 3531 al aumentar las columnas a 64.
 
En algún momento hubo una respuesta sobre las comillas simples y dobles. No es textual, pero se acerca al texto: "lleva mucho tiempo funcionando con comillas dobles". En este momento, volviendo al trabajo con tablas, un intento de escribir texto entre comillas dobles en una tabla falla. Sin embargo, al encerrar el texto entre comillas simples y luego dobles, la escritura se completa con éxito. ¿Cuál es la regla correcta de comillas simples y dobles para escribir texto en una tabla?
Opciones y resultados :
correcto -
         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'");

sin éxito -

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

Me gustaría señalar que la conversión de un número entero en una cadena no produce ningún error al escribir en una tabla.

 

Estimados desarrolladores, por favor, díganme ¿por qué no es posible adjuntar una base de datos existente desde un archivo (ATTACH DATABASE)?

Entonces, ¿cómo es posible adjuntar una base desde la RAM...?

He adjuntado el código.

El script create_databases.mq5 crea una base de datos. El script attach_mem_db.mq5 adjunta la base de datos desde la RAM. Pero el script attach_other_db.m q5 falla al adjuntar una base de datos existente.

Archivos adjuntos: