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

 
Renat Fatkhullin #:
Спасибо, проверим.

Взаимно!

Нужно также проверить ON DELETE и ON UPDATE:

  • NO ACTION
  • SET NULL
  • SET DEFAULT
  • RESTRICT
  • CASCADE

Без этого работа сильно усложняется.

 
Anatoli Kazharski #:

Спасибо за ответ!

У меня почему-то результат не тот, который ожидаю:

//---

Где ошибка?

И вот с этим тоже хочется разобраться:

Наша ошибка была в том, что собрали без SQLITE_DEFAULT_FOREIGN_KEYS.

Уже исправлено и работает - будет доступно в бете сегодня вечером. Таблицу с FOREIGN KEYS надо будет заново пересоздать для примера выше.

Команды в панели будем позже смотреть.

 
Renat Fatkhullin #:

Наша ошибка была в том, что собрали без SQLITE_DEFAULT_FOREIGN_KEYS.

Уже исправлено и работает - будет доступно в бете сегодня вечером. Таблицу с FOREIGN KEYS надо будет заново пересоздать для примера выше.

Команды в панели будем позже смотреть.

Спасибо! Обязательно протестирую.

 
Не работает горячая клавиша F9 - выполнить запрос. Ожидание заявленного можно увидеть, если навести курсор на кнопку "Выполнить". Но, ни при нажатии F9 с курсором в командной строке, ни при перемещении курсора ( указателя мыши ) в другое(другие) положения заявленная F9 не отрабатывает. Использовать мышь для нажатия "Выполнить" - крайне не привлекательно. 
 

Привет,

Кажется, что-то не так.
Я создал базу данных "signals.sqlite" и получил подтверждение, что она существует. Я сохранил данные в базу данных и получил подтверждение, что 63 записи были сохранены. К сожалению, я не могу ничего прочитать из базы данных, и когда я проверяю базу данных, я не могу найти файл "signals.sqlite". Однако я нахожу каталог в XM MT5/Bases/signals и в этом каталоге файл "signals.dat", который не читается для меня и имеет размер 3845 kb.
Вопрос в том, где я могу найти файл "signals.sqlite" и если нет, то как я могу его отредактировать?

Я использую XM MT5 build 3521

 
Zbigniew Mirowski .sqlite" и получил подтверждение, что она существует. Я сохранил данные в базу данных и получил подтверждение, что 63 записи были сохранены. К сожалению, я не могу ничего прочитать из базы данных, и когда я проверяю базу данных, я не могу найти файл "signals.sqlite". Однако я нахожу каталог в XM MT5/Bases/signals и в этом каталоге файл "signals.dat", который для меня нечитабелен и имеет размер 3845 кб. Вопрос в том, где я могу найти файл "signals.sqlite" и если нет, то как я могу его отредактировать? Я использую XM MT5 build 3521
.

Файл обычно хранится в "<папка данных>\MQL5\Files", если вы не использовали флаг DATABASE_OPEN_COMMON.

Файл "signals.dat" не имеет никакого отношения к SQLite.

 
Fernando Carreiro #:

Обычно файл хранится в папке "<папка данных>\MQL5\Files", если только вы не использовали флаг DATABASE_OPEN_COMMON.

Файл "signals.dat" не имеет никакого отношения к SQLite.

Привет, Фернандо, спасибо за ответ

Я ожидал этого, потому что это указано в описании, но, к сожалению, каталог файлов пуст, и я создал базу данных с помощью этой команды:

filename="signals.sqlite"

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

например, с флагом DATABASE_OPEN_COMMON


DATABASE_OPEN_COMMON

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


как интерпретировать ii?
 

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

например, с флагом DATABASE_OPEN_COMMON

DATABASE_OPEN_COMMON

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

как интерпретировать ii?

Тогда вы найдете его в папке"%APPDATA%\MetaQuotes\Terminal\Common\Files".
 
Fernando Carreiro #:
Затем вы найдете его в"%APPDATA%\MetaQuotes\Terminal\Common\Files".

Теперь у меня новая проблема. Я пришел к выводу, что, возможно, ошибка кроется в том, что я установил MT5 на диск C в Program files, и, возможно, в новой Win11 есть какие-то ограничения доступа. Поэтому я установил новый экземпляр на другой диск, новый демо-счет и попытался установить эту базу данных там и... Я получил:
2022.11.30 10:37:26.036 CreateDB (EURUSD,H1) database error, table Signals already exists.
При создании базы данных я сразу создаю таблицы. Create не выдает ошибку, потому что он также открывает базу данных, но создание таблицы выдает ошибку.
Я обыскал весь компьютер и файлы "signals.sqlite" не были найдены, но я снова нашел файл "signals.dat".

Вау, я нашел файл "signals.sqlite"

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

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

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

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

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

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