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

 

Здравствуйте.

При запуске SQLite3Test.mq5 получаю ошибку 14 (SQLITE_CANTOPEN). Что я не так делаю?

 
Serhii Shevchuk:

Здравствуйте.

При запуске SQLite3Test.mq5 получаю ошибку 14 (SQLITE_CANTOPEN).

Что я не так делаю?

не дебажете или не принтуете в лог место ошибки

 
o_o:

не дебажете или не принтуете в лог место ошибки

1. Запускаю скрипт из архива, "как есть".

2. Дебаг "На реальных данных". Захожу в первую функцию:

//--- open database connection
   if(sql3.Connect("SQLite3Test.db3")!=SQLITE_OK)
      return;

3. Дохожу до этого места в файле SQLite3Base.mqh:

int CSQLite3Base::Reconnect()
  {
   Disconnect();
   uchar file[];
   StringToCharArray(m_dbfile,file);
   int res=::sqlite3_open(file,m_db);
   m_bopened=(res==SQLITE_OK && m_db);
   return(res);
  }

4. После выполнения строки

int res=::sqlite3_open(file,m_db);

получаю res равным 14. На этом работа скрипта заканчивается.

Хотя, судя пот тексту статьи, должно быть

"В результате работы появится файл базы данных в папке установки терминала MetaTrader 5."

Что может быть причиной? В какую сторону смотреть?

 

Проверил скачанный скрипт


всё отработало с первого раза правильно




Serhii Shevchuk:

В какую сторону смотреть?

начните отсюда

 
o_o:

Проверил скачанный скрипт

Я тоже проверил:

Всё так же ошибка 14.

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

 

Serhii Shevchuk:

Я понял, что от Вас сложно добиться помощи по делу.

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

может вы на маке запускаете, или у вас папка с правами ридонли

я хз что у вас там может быть с файловой системой

С автомобильного форума:

ххх: треск в двигателе после замены маслосъёмных колпачков. Помогите разобраться в причинах и какие могут быть последствия

ууу: причин может быть множество , а последствия могут быть разными .

ххх: Спасибо



Почему - пока не знаю.

как узнаете, расскажите

 
Всю статью не читал, т.к. в этих библиотеках какой-то бардак присутствует. Хотя, кое-что я для себя взял т.к. это было первое что я увидел по этой тематике. Дальше понял, что нужно читать оф. документацию т.к. по такой статье не научишься ничего. По сути, скажу, что по поводу функций sqlite3_bind_хх информация не верная. Автор статьи вводить в заблуждение. Назначение этих функций совсем другое. Если автор статьи сам не изучил тему или не хотел об этом просто писать, лучше бы не писал. После того, как я в статье прочитал тот бред по этому функционалу, пришлось не один час всё это обдумать. Именно так. С СУБД я только начал неделю назад работать. Осваиваюсь. Поэтому не просто было понять. А когда понял для чего нужны функции sqlite3_bind_хх удивился.Не ожидал от автора статьи такого.. Раньше думал, что он профессионал.
 
Конкретно материал приложенный к статье не тестировал, однако у меня в плюсах есть похожая ошибка. Я не как не могу открыть / создать базу по переданному пути, она всегда создается либо в директории проекта, либо по пути указанному от директории проекта (/new folder/myDB.db)... 

Импортировал функции создания и закрытия базы и попробовал создать ее. В результате у меня база создалась в загрузках.
 
---:

ууу: причин может быть множество , а последствия могут быть разными .

Спасибо, помогло. Проблема решена, вопрос снят.

 
У меня очень интересная ситуация) буквально вчера все создавалось и работало (правда от чего то в папке "Загрузки") Но, за ночь файл базы перестал создаваться, однако сама база работает как надо для тестов пробовал создать базу размещенную в памяти sqlite3_open(":memory:") - база создается, данные загружаются / считываются. 

Возможно проблема с правами доступа, как считаете? как бы это в виндовс проверить знает кто? 
Причина обращения: