|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Занесение данных в SQLite
Здравствуйте!
Делаю программку с применением SQLite. Нужно, чтобы путь к открываемому файлу заносился в БД. Вдобавок производится проверка, если такой путь уже есть в базе, то файл в БД не должен заноситься. Когда файл открывается из какой-то папки на рабочем столе (например, C:\Documents and Settings\Пользователь\Рабочий стол\Images или D:\Folder1) и его нет в базе (sltb.FieldAsInteger(0)=0), то занесение в базу происходит. Но когда файл сам находится на рабочем столе (C:\Documents and Settings\Пользователь\Рабочий стол), путь к файлу в базу почему-то не заносится. В чем может быть тут дело? Код:
var MAIN_DB:TSQLiteDatabase; ............. var sltb:TSQLiteTable; ............. try sltb := MAIN_DB.GetTable('SELECT COUNT (full_path) FROM file_location WHERE full_path like "'+ExtractFilePath(ExpandFileName(NamFile))+'%"'); if sltb.FieldAsInteger(0)=0 then MAIN_DB.ExecSQL('INSERT INTO file_location (full_path) values("'+ExtractFilePath(ExpandFileName(NamFile))+'")'); finally sltb.Free; end; |
#2
|
|||
|
|||
SQLite не правильно рабоает с русскими буквами. Сам на это наступал и как раз с операцией LIKE. Либо переделывай на точное соответсвие (на равно), либо меняй БД. Я в итоге поменял БД на fireBird embeddeed с использованием IBX.
|
#3
|
|||
|
|||
Заменил на точное соответствие. Программа стала заносить в БД и Рабочий стол, и подпапки. Действительно, там не надо было использовать LIKE. Спасибо!
|
#4
|
|||
|
|||
SQLite прекрасно работает с русскими буквами, единственное что нужно делать это перекодировать в UTF-8. Для этого пользуйся
UTF8Encode и UTF8Decode |