DatabaseRead() устанавливает код ошибки ERR_DATABASE_ERROR (5601) - что я делаю не так?

 

Всех приветствую. 

Изучаю работу с Базами Данных с помощью внутренних функций (раньше никогда ни с БД, ни с SQL дела не имел).  Создал базу с помощью SQLiteStudio, открываю её в МТ5, читаю, делаю запросы - пока всё удавалось (не сразу, конечно, танцы по граблям присутствуют, но всё же, с успешным завершением). 

Сейчас пытаюсь записать в таблицу базы данных строчку, прохожу код под дебагером. 

Вроде делаю всё верно, SQL - запрос примерно такой, как в справке, в  SQLiteStudio он правильно добавляет строчку в таблицу. 

Вызываю DatabasePrepare(), получаю хэндл. Успешно.

Открываю транзакцию DatabaseTransactionBegin() - успешно.

Параметры запроса вызываю с функциями DatabaseBind() - всё успешно. 

А вот дальше вызываю DatabaseRead() - возвращает false, и GetLastError() возвращает код ERR_DATABASE_ERROR  (5601).

Что не так? Как я понимаю, раз SQLiteStudio нормально открывает БД и таблицу (да и я из MQL нормально её читаю) - в структуре ошибок нет. 

Куда копать? Где лыжи смазать? Слишком уж общий код ошибки... 

SQLite: нативная работа с базами данных на SQL в MQL5
SQLite: нативная работа с базами данных на SQL в MQL5
  • www.mql5.com
Разработка торговых стратегий связана с обработкой больших объемов данных. Теперь прямо в MQL5 вы можете работать с базами данных с помощью SQL-запросов на основе SQLite. Важным преимуществом данного движка является то, что вся база данных содержится в единственном файле, который находится на компьютере пользователя.
 

Сам спросил - сам отвечаю. 

Установлен флаг "ридонли" во время открытия.  

Хорошо бы, чтобы при попытке записи в Read-Only файл устанавливался код ошибки ERR_DATABASE_READONLY или, даже лучше  ERR_FILE_NOTTOREAD (поскольку именно файл был открыт в режиме "только для чтения").