Обсуждение статьи "SQLite: нативная работа с базами данных на SQL в MQL5" - страница 11

 
Fernando Carreiro #:

Но разве не там я сказал вам, где вы его найдете?

Тогда вы найдете его в "%APPDATA%\MetaQuotes\Terminal\Common\Files".

Вы были правы, но я не нашел его там вчера, там есть только структура в файле "signals.sqlite" и я подозреваю, что есть данные в файле signals.dat.

но это в документации
параметры

имя файла

[in] Имя файла относительно папки "MQL5\Files".

 
Zbigniew Mirowski #:
Вы были правы, но вчера я его там не нашел, В файле "signals.sqlite" есть только структура, и я подозреваю, что в файле signals.dat есть данные.

Нет! Я уже говорил вам, что"signals.dat" - это внутренний файл данных MetaTrader, и он не имеет никакого отношения к SQLite.

В файле"signals.dat" MetaTrader хранит информацию о сигналах, которые можно получить с помощью функции Trade Signals...

База кода

Вывод списка всех свойств сигналов MT5 в CSV-файл

Фернандо Каррейро, 2022.04.21 15:14

Этот простой и быстрый код скрипта выведет CSV-файл со всеми свойствами сигналов, о которых сообщает функционал 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
 
Zbigniew Mirowski #: но это есть в документации. parameters, filename, [in] Имя файла относительно папки "MQL5\Files".

Но вы использовали флаг"DATABASE_OPEN_COMMON", который меняет расположение. Поэтому не используйте этот флаг, если вы не хотите, чтобы файл находился в общей папке.

DATABASE_OPEN_COMMON

Файл находится в общей папке всех терминалов

 
Fernando Carreiro #:

Но вы использовали флаг"DATABASE_OPEN_COMMON", который меняет местоположение. Поэтому не используйте этот флаг, если вы не хотите, чтобы он находился в общей папке.

DATABASE_OPEN_COMMON

Файл находится в общей папке всех терминалов

Ок, я понял и нашел данные в signals.sqlite-wal:))

Спасибо за помощь)

 
Zbigniew Mirowski #: Хорошо, я понимаю. Тогда где данные? Я загружаю и получаю подтверждение signals.sqlite открылся

CS 0 12:43:16.106 SignalsBasa (EURUSD,H1) DB: succesfull
Документ после загрузки данных все еще 8 кб и я не могу загрузить данные и получить
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

Но вы уже заявили, что нашли файл ...

"Вау, я нашел файл "signals.sqlite" C:\Users\name\AppData\Roaming\MetaQuotes\Terminal\Common\Files".

Так в чем же проблема?

Файл"signals.sqlite" будет содержать структуру и данные в одном. Откройте его через MetaEditor и посмотрите данные сами - Работа с базами данных SQL - Помощь MetaEditor

 
Zbigniew Mirowski #: Хорошо, я понял и нашел данные в signals.sqlite-wal:)) Спасибо за помощь)

Пожалуйста!

 

В MetaEditor максимальное количество столбцов таблиц БД для показа всего лишь 23.

Можно снять ограничение?

 
Anatoli Kazharski #:

В MetaEditor максимальное количество столбцов таблиц БД для показа всего лишь 23.

Можно снять ограничение?

Исправлено в бете 3531 с увеличением колонок до 64.
 
В какой-то момент где-то прозвучал ответ про одинарные и двойные кавычки. Не дословно, но близко к тексту - "работает давно с двойными кавычками". На текущий момент, возвращаясь к работе с таблицами, попытка записи в таблицу текста в двойных кавычках заканчивается неудачей. Однако, заключив текст в одинарные, а затем в двойные кавычки, запись завершается успешно. Каким образом звучит правило одинарных и двойных кавычек для записи текста в таблицу? 
Варианты и исходы : 
успешно  - 
         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'");

не успешно  - 

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

Хочу обратить внимание, перевод целого в строку не выдает ошибку при записи в таблицу. 

 

Уважаемые разработчики, подскажите пож-ста, почему не получается присоединить существующую базу из файла (ATTACH DATABASE)?

Тогда как получается  присоединить базу из оперативки...

Код приложил.

Скрипт create_databases.mq5 создаёт БД. Скрипт attach_mem_db.mq5 присоединяет базу из оперативки. А в скрипте attach_other_db.mq5 не получается присоединить существующую БД.

Файлы: