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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.03.2013, 18:48
BarakudaX777 BarakudaX777 вне форума
Прохожий
 
Регистрация: 16.02.2013
Сообщения: 13
Репутация: 10
По умолчанию

Помогите разобратся.
Работаю с базой mysql, расположенной в интернете. база в utf8. Все работало хорошо.
Работаю с компонентом ZeosDB. Никаких преобразований кодировок не делал все сразу работало.
Потом появилась необходимость подготовить базу локальную, решил использовать sqlite. Суть в том что пользователь нажимает кнопку выгрузка, и база выгружается в локальную, и если пользователь едет туда где интернет отсутствует, мог работать с базой а при выходе в интернет, записать изменения.

Проблема возникла в следующем
Базы заданы обе в UTF8, что mysql, что sqlite. Вот только не могу подружить один компонент Zeos и переключать с одной базы на другую. кодировки меняются ничего не понятно становится.

Попробовал в mysql базе при добавлении ставить преобразование ansitoutf8 или utf8encode в базе, если зайти в phpmyadmin сразу отображаются каракули говорящие что данные в utf8.
Код:
function TMainForm.Prepare(t: String):RawByteString;
var b:UTF8String;
begin
  result:=ANSIToUTF8(t);
end;

Потом в момент выгрузки почему то опять приходится использовать AnsiToUTF8, хотя данные вроде как в нужном формате. Почему так?

ПОчему то преобразование часто вообще не срабатывает допустим:
Код:
function TMainForm.Prepare(t: String):RawByteString;
var b:UTF8String;
begin
  //t=проба
  result:=ANSIToUTF8(t);  //=проба
end;

Как такое реально? Delphi 2010.

Кто пробовал подружить Zeos с двумя базами. почему phpmyadmin, настроенный на базу utf8 при импорте вводит не ту кодировку, а при перекодировании в базе показывает корякули... ПОчему в момент импорта utf8 значений в utf8 базу sqlite снова приходится перекодировать в utf8

Все работало отлично а тут чтот загвоздка возникла. уже 2 дня потерял на то чтоб подружить 2 базы и данные между ними сливались в нужном формате.
Может дело в компоненте? Ниже выложу больше информации по коду.

При вставке в базу mysql

Код:
 if MessageDlg('Добавить клиента '+UTF8Decode(c_name.Text)+'?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin
      if MainForm.DBQuery('INSERT INTO clients(c_name,adress,director,telephone) VALUES("'+MainForm.Prepare(c_name.text)+'","'+MainForm.Prepare(adress.text)+'","'+MainForm.Prepare(director.text)+'","'+MainForm.Prepare(telephone.Text)+'");') then ShowMessage('Добавление прошло успешно!');

Экспорт в базу sqlite
Код:
  
//ПЕРВЫМ ДЕЛОМ ПЕРЕНОСИМ ПЕРВОНАЧАЛЬНЫЕ СПРАВОЧНИКИ
 //ПОЛЬЗОВАТЕЛЕЙ
 try
    sql:='insert into users(id,fio,tel,sync) values(';
    sql:=sql+ZQuery1.FieldByName('id').AsString+',"'+AnsiToUTF8(ZQuery1.FieldByName('fio').AsString)+'","'+AnsiToUTF8(ZQuery1.FieldByName('tel').AsString)+'","YES")';
    DBSelect(sql,ZExport);

Вообще SQLite не очень нравится, может посоветуйте что для локальной базы что использовать, чтоб без установок программы, легко переносилась.

Последний раз редактировалось M.A.D.M.A.N., 07.03.2013 в 19:15. Причина: Это не ЧАТ!
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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