powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Открытие файла базы данных с Юникодом в пути и названии
21 сообщений из 21, страница 1 из 1
Открытие файла базы данных с Юникодом в пути и названии
    #36596113
Никита2323
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Использовал базу sqlite без проблем пока не появилась необходимость поддержки полноценного юникода во всей программе.
Столкнулся с проблемой, функция sqlite3_open16 возвращает ошибку номер 14 ( Unable to open the database file ) если в пути к файлу или файле базы данных встречается хотябы один Юникод символ. Подскажите в чем может быть проблема?
Спасибо!
...
Рейтинг: 0 / 0
Открытие файла базы данных с Юникодом в пути и названии
    #36596156
grio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Никита2323,
одно скажу точно, проблема не в базе SQLITE.
обрати внимаение на функции по работе с юникодом в том языке, на котором пишешь программу.
...
Рейтинг: 0 / 0
Открытие файла базы данных с Юникодом в пути и названии
    #36596172
Никита2323
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
grioНикита2323,
одно скажу точно, проблема не в базе SQLITE.
обрати внимаение на функции по работе с юникодом в том языке, на котором пишешь программу.
Пишу на С++ использую MSVS в проэкт скомпилирован с Character Set: Unicode , WCHAR и CString использую как типы строк в которых и передаю путь к файлу функции sqlite3_open16.

Таже функция тот же код отлично работает если все симполы в пути и названии файла английские...

Какой то особый юникод нужно использовать для работы с sqlite?
Насколько я понимаю _wchar_t это стандарт..
...
Рейтинг: 0 / 0
Открытие файла базы данных с Юникодом в пути и названии
    #36596235
grio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Никита2323,
ты передаешь драйверу SQLITE имя файла базы, попробуй передавать не имя, а хеадер файла. А предварительно еще глянь как себя поведет if (file.exists()).
...
Рейтинг: 0 / 0
Открытие файла базы данных с Юникодом в пути и названии
    #36596270
Никита2323
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
grioНикита2323,
ты передаешь драйверу SQLITE имя файла базы, попробуй передавать не имя, а хеадер файла. А предварительно еще глянь как себя поведет if (file.exists()).
хеадер это как? есть еще какой то способ открыть файл базы не передавая полный путь к этому файлу?
...
Рейтинг: 0 / 0
Открытие файла базы данных с Юникодом в пути и названии
    #36596272
Никита2323
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
grioНикита2323,
ты передаешь драйверу SQLITE имя файла базы, попробуй передавать не имя, а хеадер файла. А предварительно еще глянь как себя поведет if (file.exists()).
ааа.. ты мееш ввиду HANDLE файла? тоесть открыть его стандартной функцией и передать sqlite ту указатель на файл?
...
Рейтинг: 0 / 0
Открытие файла базы данных с Юникодом в пути и названии
    #36596277
Никита2323
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какая функция является аналогом sqlite3_open16 но с указателем на файл вместо пути к файлу?
...
Рейтинг: 0 / 0
Открытие файла базы данных с Юникодом в пути и названии
    #36596459
ЯИра
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Никита, приведи кусок кода где ошибка появляется
...
Рейтинг: 0 / 0
Открытие файла базы данных с Юникодом в пути и названии
    #36596578
Никита2323
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЯИраНикита, приведи кусок кода где ошибка появляется

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
sqlite3* mpDB;
void open(LPCTSTR filename)
{
    int nRet;
    nRet = sqlite3_open16(filename, &mpDB);

   /*
      nRet при открытии файла без юникода в названии возвращает 0
      nRet при открытии файла с юникодом в названии возвращает 14
   */
}
...
Рейтинг: 0 / 0
Открытие файла базы данных с Юникодом в пути и названии
    #36596633
ЯИра
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Никита2323,

а значение filename чему равно, когда возникает ошибка?
...
Рейтинг: 0 / 0
Открытие файла базы данных с Юникодом в пути и названии
    #36596636
Никита2323
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЯИраНикита2323,

а значение filename чему равно, когда возникает ошибка?

filename равно "С:\Work\Project\Data\й\data.db" где data.db это файл базы данных sqlite
если название папки "й" заменить на какой либо англ символ то файл базы открывается.

зы. папка названна "й" специально для тестирование работы с юникодом
...
Рейтинг: 0 / 0
Открытие файла базы данных с Юникодом в пути и названии
    #36596748
ЯИра
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
похоже точно проблемы с путем с кириллицей, но у меня не так проявляется
код
Код: plaintext
1.
2.
	sqlite3 *db;
	rc = sqlite3_open16(L"D:\Й\exam1.db", &db);
результат rc=0 и в корне диска D база с таким именем Éexam1.db
...
Рейтинг: 0 / 0
Открытие файла базы данных с Юникодом в пути и названии
    #36596750
ЯИра
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
решение найдено, такой код нормально создает базу
Код: plaintext
1.
rc = sqlite3_open16(L"D:\\Й\\exam1.db", &db);
...
Рейтинг: 0 / 0
Открытие файла базы данных с Юникодом в пути и названии
    #36596778
Никита2323
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЯИрарешение найдено, такой код нормально создает базу
Код: plaintext
1.
rc = sqlite3_open16(L"D:\\Й\\exam1.db", &db);

Спасибо!
Попробовал так, у меня все равно не открывается... у меня английская windowsXP все кодировки устанновленны..
Вы собираете проэкт в VisualStudio? Собираете с CharacterSet=Unicode в настройках проэкта?
...
Рейтинг: 0 / 0
Открытие файла базы данных с Юникодом в пути и названии
    #36597137
ЯИра
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, VS2008, Набор знаков = Использовать Юникод-кодировку, Windows 7
...
Рейтинг: 0 / 0
Открытие файла базы данных с Юникодом в пути и названии
    #36597149
Никита2323
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЯИраДа, VS2008, Набор знаков = Использовать Юникод-кодировку, Windows 7
Наверное какие то особенности файловой системы моей версии ОС, буду искать обхоные пути, Спасибо!
...
Рейтинг: 0 / 0
Открытие файла базы данных с Юникодом в пути и названии
    #36597365
ЯИра
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может дело в сборке SQLite? Я сама собирала
...
Рейтинг: 0 / 0
Открытие файла базы данных с Юникодом в пути и названии
    #36597563
Никита2323
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЯИраМожет дело в сборке SQLite? Я сама собирала
Думал об этом но не нашел на сайте исходники с проэктными файлами для MSVS, не стал заморачиватся сборками под Linux, так как сейчас нет рядом машины с этой ОС а ставить виртуальную машину это время.. Подскажите где на их сайте исходники с проэктными файлами под MSVS? или все таки под gcc прийдется собирать?
...
Рейтинг: 0 / 0
Открытие файла базы данных с Юникодом в пути и названии
    #36597570
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никита2323ЯИраМожет дело в сборке SQLite? Я сама собирала
Думал об этом но не нашел на сайте исходники с проэктными файлами для MSVS, не стал заморачиватся сборками под Linux, так как сейчас нет рядом машины с этой ОС а ставить виртуальную машину это время.. Подскажите где на их сайте исходники с проэктными файлами под MSVS? или все таки под gcc прийдется собирать?Зачем тебе проектные файлы?
Кстати, открой орфографический словарь: про е кт. Глаза режет тебя читать.
Выкачивай амальгаму (самый первый файлик на странице скачиваний). Распаковывай архив - получишь sqlite3.cpp и sqlite3.h, подключи их в свой проект и все.
...
Рейтинг: 0 / 0
Открытие файла базы данных с Юникодом в пути и названии
    #36597583
Никита2323
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Супер! Спасибо! Сейчас буду пробовать, я использовал sqlite через lib и dll не увидел что есть возможность просто cpp подключить.
...
Рейтинг: 0 / 0
Открытие файла базы данных с Юникодом в пути и названии
    #36597592
Никита2323
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Никита2323,

Круто! Вроде получилось все заработало! Всем спасибо!!!
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Открытие файла базы данных с Юникодом в пути и названии
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]