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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.02.2024, 12:14
Aibekkoke Aibekkoke вне форума
Прохожий
 
Регистрация: 18.12.2009
Адрес: Казахстан, Шалкар
Сообщения: 12
Репутация: 10
По умолчанию Проблема с кодировками

Здравствуйте. Помогите пожалуйста очень прощу.
При добавлений записи в таблицу вместо казахских букв отображается вопросительный знак. Таблица в Mysql. Подключаюсь к базе через fdconnection. Запись добавляю через fdquery.
Вот такой код использую для добавление записи:
Код:
if Assigned(GlavFrm) then
    begin
      GlavFrm.FDQuery1.SQL.Text := 'INSERT INTO Malimet (tabel, name, birthday, citizenship, nationality, gender, military_rank, photo, password) VALUES (:tabel, :name, :birthday, :citizenship, :nationality, :gender, :military_rank, :photo, :password)';
      GlavFrm.FDQuery1.ParamByName('tabel').AsString := Edit1.Text;
      GlavFrm.FDQuery1.ParamByName('name').AsString := UTF8Encode(Edit2.Text);
      GlavFrm.FDQuery1.ParamByName('birthday').Value := DateTimePicker1.Date;
      GlavFrm.FDQuery1.ParamByName('citizenship').AsString := ComboBox1.Text;
      GlavFrm.FDQuery1.ParamByName('nationality').AsString := ComboBox2.Text;
      GlavFrm.FDQuery1.ParamByName('gender').AsString := ComboBox3.Text;
      GlavFrm.FDQuery1.ParamByName('military_rank').AsString := ComboBox4.Text;
      GlavFrm.FDQuery1.ParamByName('photo').AsString := label8.Caption;
      GlavFrm.FDQuery1.ParamByName('password').AsString := Edit3.Text;
      GlavFrm.FDQuery1.ExecSQL;
    end;
При созданий формы установливаю кодировку:
Код:
GlavFrm.FDQuery1.SQL.Clear;
  // Выполняем запрос для выборки данных
        GlavFrm.FDConnection1.Connected := True; // Подключаемся к базе данных
        GlavFrm.FDConnection1.Params.Values['CharacterSet'] := 'utf8';
        GlavFrm.FDQuery1.SQL.Text := 'SELECT * FROM malimet';
        GlavFrm.FDQuery1.Open;
Изображения
Тип файла: jpg Screenshot_2.jpg (76.1 Кбайт, 3 просмотров)
Ответить с цитированием
  #2  
Старый 06.02.2024, 06:48
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,051
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

А если каким-нить сторонним тулом глянуть в БД? Там правильно отображается или тоже кракозябры? Очень уж похоже, что проблема на стороне базы данных, там надо задать дефолтную кодировку для полей при создании полей.
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
Aibekkoke (09.02.2024)
  #3  
Старый 08.02.2024, 05:36
Aibekkoke Aibekkoke вне форума
Прохожий
 
Регистрация: 18.12.2009
Адрес: Казахстан, Шалкар
Сообщения: 12
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
А если каким-нить сторонним тулом глянуть в БД? Там правильно отображается или тоже кракозябры? Очень уж похоже, что проблема на стороне базы данных, там надо задать дефолтную кодировку для полей при создании полей.
Здравствуйте. Создавал уде 4 раза, но все равно такая проблема. Но есть один проект который делал для примера, там все отлично работает. А если подключится к этой базе который работает и добавить запись тоже такая проблема. Проблема кажется со стороны делфи:-( А если добавить запись из phpmyadmin тогда все отлично работает, нет никаких вопросительных знаков
Ответить с цитированием
  #4  
Старый 08.02.2024, 06:38
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,051
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

А если конвертнуть в AnsiString с нужной кодировкой? Убери установку utf-8 и при встаке конвертируй строки в нужную кодировку. Может поможет...
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
Aibekkoke (09.02.2024)
  #5  
Старый 08.02.2024, 10:21
Aibekkoke Aibekkoke вне форума
Прохожий
 
Регистрация: 18.12.2009
Адрес: Казахстан, Шалкар
Сообщения: 12
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
А если конвертнуть в AnsiString с нужной кодировкой? Убери установку utf-8 и при встаке конвертируй строки в нужную кодировку. Может поможет...
А как это сделать, не подскажете?
Ответить с цитированием
  #6  
Старый 09.02.2024, 07:31
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,051
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Кстати, а какая кодовая страница стоит по умолчанию?
Посмотри значение в System.DefaultSystemCodePage
Если неправильная, то вызови метод System.SetMultiByteConversionCodePage для установки правильной кодировки.
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
Aibekkoke (09.02.2024)
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter