SQLite в MQL5: новые функции и тестирование производительности - страница 4

 
Pavel Kolchin:

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

в mql4 будет?

Пользуйте Memlib.mqh. 

 
Dmitiry Ananiev:

Пользуйте Memlib.mqh. 

не нашел что это такое

 
Sergey Dzyublik:

Так же прошу обратить внимание на следующие недостатки, которые удалось обнаружить:

1) Описание функции DatabaseExecute не соответствует действительности, а скопирована с  DatabasePrepare.

2) Неполное описание первого параметра функции DatabaseReadint     database,       // хендл базы данных, полученный в DatabaseOpen;
Так как в  DatabasePrepare предоставлена более полная информация: с оздает хендл запроса, который затем может быть исполнен с помощью DatabaseRead().

5) Опечатка в описании параметра функции  DatabaseColumnName (должно быть "для получения имени поля")

string&  name         // ссылка на переменную для получения имени таблицы

Спасибо, исправили. Обновление будет на сайте в разделе Работа с базами данных.

Документация по MQL5: Работа с базами данных
Документация по MQL5: Работа с базами данных
  • www.mql5.com
Важной особенностью данного движка является то, что вся база данных находится в единственном стандартном файле, который находится на компьютере пользователя. Простота реализации достигается за счёт того, что перед началом исполнения транзакции записи файл, содержащий базу данных, блокируется. При этом...
 
SQL запрос имеет специальный формат. Это же не чистый SQL. Все пишется внутри вызова функции и без запятых между строками? Или можно инициализировать массив string? Нужны примеры.
 
Rashid Umarov:

Спасибо, исправили. Обновление будет на сайте в разделе Работа с базами данных.


DatabaseRead параметры в описании не верные.

Должен принимать хэндл на SQL-запрос.


Уже переписал свой проект с импортируемой длл sqlite3, на встроенный функционал - все отлично.


P.S. Проверьте функционал сброса LastError в Database.... функциях.

 
Renat Fatkhullin:
Перед нами вообще такой задачи не стоит.

Перед вами - да, не стоит. Разработчикам же уже давно нужен какой-то адекватный потокобезопасный механизм обмена сообщениями. Базы для этого видятся хорошим вариантом, пусть и не напрямую, но через дополнительные потокобезопасные обертки. 

 
Vasiliy Sokolov:

Перед вами - да, не стоит. Разработчикам же уже давно нужен какой-то адекватный потокобезопасный механизм обмена сообщениями. Базы для этого видятся хорошим вариантом, пусть и не напрямую, но через дополнительные потокобезопасные обертки. 

 
Renat Fatkhullin:

Скорее всего разрешим в ресурсы включать и эти файлы будут автоматически извлекаться на диск при первом запуске программы.

То есть, никакого распухания базы внутри ex5 не будет. С файлом можно работать только на диске.

Так же прошу рассмотреть, ещё нужный функционал.
Нужна функция DatabaseSaveMemoryToFile, которая будет сохранять базу открытую как  DATABASE_OPEN_MEMORY, в файл на диск. 
То есть для скорости обмена данных используем память, и если нужно сохраняем данные в файл на диск. 
Как это сделано в Обзоре рынка, сперва данные поступают в обзор рынка, а затем сохраняются в историю.

И функция обратного извлечения, из файла в память DatabaseExtractFileToMemory
По такому принципу работает база KDB+
 
Может мало кто знает, что при сохранении ресурса на диск функцией ResourceSave нецветовые данные искажаются. Эта функция заточена только под сохранение изображений. 

Это к вопросу о включении БД в ресурс и сохранении на диске.
 
Реter Konow:
Может мало кто знает, что при сохранении ресурса на диск функцией ResourceSave нецветовые данные искажаются. Эта функция заточена только под сохранение изображений. 

Это к вопросу о включении БД в ресурс и сохранении на диске.

Включение файла БД в ресурс, скорее всего предназначен будет, только для первичной распаковки файла на диск, из ex5.
Дальнейшая работа с базой, происходит напрямую с файлом.

Причина обращения: