Всю статью не читал, т.к. в этих библиотеках какой-то бардак присутствует. Хотя, кое-что я для себя взял т.к. это было первое что я увидел по этой тематике. Дальше понял, что нужно читать оф. документацию т.к. по такой статье не научишься ничего. По сути, скажу, что по поводу функций sqlite3_bind_хх информация не верная. Автор статьи вводить в заблуждение. Назначение этих функций совсем другое. Если автор статьи сам не изучил тему или не хотел об этом просто писать, лучше бы не писал. После того, как я в статье прочитал тот бред по этому функционалу, пришлось не один час всё это обдумать. Именно так. С СУБД я только начал неделю назад работать. Осваиваюсь. Поэтому не просто было понять. А когда понял для чего нужны функции sqlite3_bind_хх удивился.Не ожидал от автора статьи такого.. Раньше думал, что он профессионал.
Конкретно материал приложенный к статье не тестировал, однако у меня в плюсах есть похожая ошибка. Я не как не могу открыть / создать базу по переданному пути, она всегда создается либо в директории проекта, либо по пути указанному от директории проекта (/new folder/myDB.db)...
Импортировал функции создания и закрытия базы и попробовал создать ее. В результате у меня база создалась в загрузках.
У меня очень интересная ситуация) буквально вчера все создавалось и работало (правда от чего то в папке "Загрузки") Но, за ночь файл базы перестал создаваться, однако сама база работает как надо для тестов пробовал создать базу размещенную в памяти sqlite3_open(":memory:") - база создается, данные загружаются / считываются.
Возможно проблема с правами доступа, как считаете? как бы это в виндовс проверить знает кто?
Andrey Azatskiy: У меня очень интересная ситуация) буквально вчера все создавалось и работало (правда от чего то в папке "Загрузки") Но, за ночь файл базы перестал создаваться, однако сама база работает как надо для тестов пробовал создать базу размещенную в памяти sqlite3_open(":memory:") - база создается, данные загружаются / считываются.
Возможно проблема с правами доступа, как считаете? как бы это в виндовс проверить знает кто?
Это легко проверить, на самом деле. Попробуй для начала в "Мои документы" запихнуть БД. Если получится, значит дело не в правах. А вообще, смотря как ты это всё делал. Я лично недели 2 продолбался, пока создал себе всё что нужно для работы с SQLite3. Пришлось переводить документацию, т.к. на русском языке нет адекватной информации по этому поводу. Как и в этой статье много мусора и левака. Выше я привл один из моментов. Потом я забил и сам изучил вопрос.
//==================================================================================================================================================================================// Convert a string to a utf-8 byte array. =========================================================================================================================================void stringToUtf8(conststring strToConvert, // Строка, которую необходимо преобразовать в массив в кодировке utf-8uchar& utf8[], // Массив в кодировке utf-8, в который будет помещена преобразованная строка strToConvertconstbool untilTerminator = true) export { // Количество символов, которые будут скопированы в массив utf8 и соот-но преобразованны в кодировку utf-8//---int count = untilTerminator ? -1 : StringLen(strToConvert);
StringToCharArray(strToConvert, utf8, 0, count, CP_UTF8);
}
Это легко проверить, на самом деле. Попробуй для начала в "Мои документы" запихнуть БД. Если получится, значит дело не в правах. А вообще, смотря как ты это всё делал. Я лично недели 2 продолбался, пока создал себе всё что нужно для работы с SQLite3. Пришлось переводить документацию, т.к. на русском языке нет адекватной информации по этому поводу. Как и в этой статье много мусора и левака. Выше я привл один из моментов. Потом я забил и сам изучил вопрос.
У меня есть для этого такой wrapper:
А вот и функция stringToUtf8:
Она у меня в отдельной библиотеке.
Да, у меня было 2 ошибки: 1 - кодировка (спасибо огромное за функцию, я уже не знал как перевести нормально в UTF -8) 2 - права доступа.
Да, у меня было 2 ошибки: 1 - кодировка (спасибо огромное за функцию, я уже не знал как перевести нормально в UTF -8) 2 - права доступа.
Да, пожалуйста. Сам вспоминаю, сколько продолбался с этим. С такими горе-статьями.. Вариант один есть. Берёшь читаешь оф. документацию, либо спрашиваешь.. Спрашивать было не у кого. Пришлось изучать самостоятельно. Тут суть в том, что если писать на С++ спросить есть у кого. А когда через прокладку писать и передавать в мкл, тут уже мало кто может помочь. Влом плюсовцам в этом вникать))
Это легко проверить, на самом деле. Попробуй для начала в "Мои документы" запихнуть БД. Если получится, значит дело не в правах. А вообще, смотря как ты это всё делал. Я лично недели 2 продолбался, пока создал себе всё что нужно для работы с SQLite3. Пришлось переводить документацию, т.к. на русском языке нет адекватной информации по этому поводу. Как и в этой статье много мусора и левака. Выше я привл один из моментов. Потом я забил и сам изучил вопрос.
У меня есть для этого такой wrapper:
А вот и функция stringToUtf8:
Она у меня в отдельной библиотеке.
а я использую для преобразования к utf
int u2a(string txt,uchar &out[]){ return(StringToCharArray(txt,out))};
Serhii Shevchuk:
Я понял, что от Вас сложно добиться помощи по делу.
как же вам помочь, если вы не рассказываете ничего как дошли до своей проблемы.
может вы на маке запускаете, или у вас папка с правами ридонли
я хз что у вас там может быть с файловой системой
С автомобильного форума:
ххх: треск в двигателе после замены маслосъёмных колпачков. Помогите разобраться в причинах и какие могут быть последствия
ууу: причин может быть множество , а последствия могут быть разными .
ххх: Спасибо
Почему - пока не знаю.
как узнаете, расскажите
Импортировал функции создания и закрытия базы и попробовал создать ее. В результате у меня база создалась в загрузках.
ууу: причин может быть множество , а последствия могут быть разными .
Спасибо, помогло. Проблема решена, вопрос снят.
Возможно проблема с правами доступа, как считаете? как бы это в виндовс проверить знает кто?
У меня очень интересная ситуация) буквально вчера все создавалось и работало (правда от чего то в папке "Загрузки") Но, за ночь файл базы перестал создаваться, однако сама база работает как надо для тестов пробовал создать базу размещенную в памяти sqlite3_open(":memory:") - база создается, данные загружаются / считываются.
Возможно проблема с правами доступа, как считаете? как бы это в виндовс проверить знает кто?
Это легко проверить, на самом деле. Попробуй для начала в "Мои документы" запихнуть БД. Если получится, значит дело не в правах. А вообще, смотря как ты это всё делал. Я лично недели 2 продолбался, пока создал себе всё что нужно для работы с SQLite3. Пришлось переводить документацию, т.к. на русском языке нет адекватной информации по этому поводу. Как и в этой статье много мусора и левака. Выше я привл один из моментов. Потом я забил и сам изучил вопрос.
У меня есть для этого такой wrapper:
А вот и функция stringToUtf8:
Она у меня в отдельной библиотеке.
Это легко проверить, на самом деле. Попробуй для начала в "Мои документы" запихнуть БД. Если получится, значит дело не в правах. А вообще, смотря как ты это всё делал. Я лично недели 2 продолбался, пока создал себе всё что нужно для работы с SQLite3. Пришлось переводить документацию, т.к. на русском языке нет адекватной информации по этому поводу. Как и в этой статье много мусора и левака. Выше я привл один из моментов. Потом я забил и сам изучил вопрос.
У меня есть для этого такой wrapper:
А вот и функция stringToUtf8:
Она у меня в отдельной библиотеке.
Да, у меня было 2 ошибки:
1 - кодировка (спасибо огромное за функцию, я уже не знал как перевести нормально в UTF -8)
2 - права доступа.
Да, у меня было 2 ошибки:
1 - кодировка (спасибо огромное за функцию, я уже не знал как перевести нормально в UTF -8)
2 - права доступа.
Да, пожалуйста. Сам вспоминаю, сколько продолбался с этим. С такими горе-статьями.. Вариант один есть. Берёшь читаешь оф. документацию, либо спрашиваешь.. Спрашивать было не у кого. Пришлось изучать самостоятельно. Тут суть в том, что если писать на С++ спросить есть у кого. А когда через прокладку писать и передавать в мкл, тут уже мало кто может помочь. Влом плюсовцам в этом вникать))
Кажется, я обнаружил утечку памяти:
В SQLite3Base.mqh строка 250
::sqlite3_finalize(stmt); // чистыйДолжно быть:
::sqlite3_finalize(pstmt); // чистыйЭто легко проверить, на самом деле. Попробуй для начала в "Мои документы" запихнуть БД. Если получится, значит дело не в правах. А вообще, смотря как ты это всё делал. Я лично недели 2 продолбался, пока создал себе всё что нужно для работы с SQLite3. Пришлось переводить документацию, т.к. на русском языке нет адекватной информации по этому поводу. Как и в этой статье много мусора и левака. Выше я привл один из моментов. Потом я забил и сам изучил вопрос.
У меня есть для этого такой wrapper:
А вот и функция stringToUtf8:
Она у меня в отдельной библиотеке.
а я использую для преобразования к utf