Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Не могу загрузить кириллицу в SQLite


Автор: МАИ 13.9.2013, 06:02
DELPHI XE3
Загрузил через OLE справочник из 1С в таблицу SQLite с использованием оберток SQLite3.pas и SQLiteTable3.pas, но при просмотре таблицы в SQLite Studio вместо кириллицы в полях таблицы показаны крокозябры. smile 
Уважаемые гуру, научите, пожалуйста, как правильно загрузить кириллицу. 

Автор: DYUMON 13.9.2013, 07:37
база сама была создана в  каком формате ?  походу в формате asci  там в студио можно переключить режим кодировки вроде.  в правильном формате добавляй данные

Автор: МАИ 13.9.2013, 18:56
БД SQLite в формате UTF-8 (по умолчанию) Загружаю через OLE из справочника 1C 7.7, хранящегося в dbf в формате asci.
С правильным форматом у меня проблемы (: 
В Delphi  я новичок, многого еще не понимаю. А функций для конверсии так много и типы их параметров такие разные, что я не могу разобраться.
Не могли бы Вы прислать пример такой конверсии? smile 

Автор: DYUMON 16.9.2013, 13:17
тогда делай UTF8Encode() для загружаемых полей

Автор: МАИ 17.9.2013, 09:34
Я выяснил, что проблема не в OLE справочнике из 1С.
Загружаю простой текст, а при просмотре таблицы в SQLite Studio латиница нормальная, а вместо кириллицы в полях таблицы показаны крокозябры
AnyText: ansistring;
for I := 1 to 100 do
Begin
AnyText := 'Простой AnyText' + inttostr(i);
Base.ExecSQL(Format(SQLInsert,[UTF8Encode(AnyText),IntToStr(i)]));
End;
Без UTF8Encode то же самое 

Автор: DYUMON 23.9.2013, 08:12
а при создании бд указывал что она utf8 ?

Автор: Poseidon 23.9.2013, 17:05
Цитата(МАИ @  13.9.2013,  06:02 Найти цитируемый пост)
с использованием оберток SQLite3.pas и SQLiteTable3.pas, но при просмотре таблицы в SQLite Studio вместо кириллицы в полях таблицы показаны крокозябры. 
Это проблема известная и проблема эта в SQLite Studio. На самом деле данные хранятся правильно и при их чтении и отображении в UI программы все будет нормально. А вот SQLite Studio не хочет показывать ничего, кроме UTF8. Решения 2: использовать UTF8Encode и UTF8Decode или другой менеджер. Ну и раз Delphi XE3, то я бы посоветовал воспользоваться родным DBExpress, вместо "левых" SQLite3.pas и SQLiteTable3.pas

Автор: Akella 23.9.2013, 23:11
Цитата(Poseidon @  23.9.2013,  17:05 Найти цитируемый пост)
 я бы посоветовал воспользоваться родным DBExpress

а я бы посоветовал UniDAC, FireDAC

Автор: DYUMON 24.9.2013, 10:05
уж как самый жеский вариант ASGSQLite но там некоторые глюки присутствуют.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)