Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.01.2009, 18:04
Deuterium Deuterium вне форума
Прохожий
 
Регистрация: 27.01.2009
Сообщения: 3
Репутация: 10
По умолчанию Занесение данных в 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  
Старый 27.01.2009, 19:17
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

SQLite не правильно рабоает с русскими буквами. Сам на это наступал и как раз с операцией LIKE. Либо переделывай на точное соответсвие (на равно), либо меняй БД. Я в итоге поменял БД на fireBird embeddeed с использованием IBX.
Ответить с цитированием
  #3  
Старый 28.01.2009, 14:41
Deuterium Deuterium вне форума
Прохожий
 
Регистрация: 27.01.2009
Сообщения: 3
Репутация: 10
По умолчанию

Заменил на точное соответствие. Программа стала заносить в БД и Рабочий стол, и подпапки. Действительно, там не надо было использовать LIKE. Спасибо!
Ответить с цитированием
  #4  
Старый 29.01.2009, 15:32
k@Z@k k@Z@k вне форума
Новичок
 
Регистрация: 31.07.2007
Сообщения: 55
Репутация: 12
По умолчанию

SQLite прекрасно работает с русскими буквами, единственное что нужно делать это перекодировать в UTF-8. Для этого пользуйся
UTF8Encode и UTF8Decode
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:27.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter