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


Автор: murod 27.5.2006, 10:46
Кодировка базы Windows-1251 
открываю базу. и оттуда считываю информацию-->>
  AdoConnect: TSQLConnection;
   adotable: TSQLDataSet;

Код

try
ADOConnect.Params.Clear;
ADOConnect.Params.LoadFromFile(extractfilepath(application.ExeName)+'init.txt');
adoconnect.Connected:=true;
adotable.GetMetadata:=false;
adotable.CommandText:='select * from orderlist';
adotable.ExecSQL;

except showMessage('Cannot connect!');splash.Hide; end;

if adotable.RecordCount>0 then
 begin
  adotable.Open;
  adotable.First;
  for h:=0 to adotable.RecordCount-1 do
   begin

    df:=adotable.FieldByName('name').AsString;
     weblist.Items.Add(df);// Добавляю в Лист Бокс
    adotable.Next;
   end;
   adotable.Close;
 end;



При этом он добавляет в комбо бокс  последовательность из символов "?".
Что делать? Помогите пожалуйста. smile 
структура таблицы такая--->>


   Поле    Тип                Кодировка                              
  adres    tinytext         cp1251_general_ci 
 
  attime   tinytext         cp1251_general_ci  

  name    varchar(50)   cp1251_general_ci  

  


  

Автор: SergeBS 29.5.2006, 09:07
Цитата

 adotable: TSQLDataSet;

Что за ерунда?

Цитата

adotable.CommandText:='select * from orderlist';
adotable.ExecSQL;

Сравни ExecSQL с Open. И вообще, F1 и посмотри примеры. Поскольку все делаешь наоборот по сравнению с тем как надо. 

Автор: murod 29.5.2006, 16:19
 Незнаю но  всё это работает. Латиницу читает нормально. Вот только с кирилицей проблемы. Если не трудно скиньте рабочий пример которы коннектится к MySql серверу компонентами DbExpress.   

Автор: SergeBS 29.5.2006, 16:48
murod, 
My.ini:
[mysql]
default-character-set=cp1251

И обычно все-таки,
1 Если есть классы TADOtable,  экземпляр другого класса так похоже не называют.
2. IsEmpty - свойство есть такое у DataSet. 
3. Двигают repeat ... until DataSet.Eof. 

Автор: murod 29.5.2006, 18:50
Понятно, Спасибо за совет!. С перва я хотел написать компонентами ADO. Но потом получилось я не нашол драйверы MySql.  А под DbExpress  оказывается есть готовы драйвер. Чтоб быстренка проверить просто поменял имя класса переменных.  smile 
Только вот не понял где мне прописать
My.ini:
[mysql]
default-character-set=cp1251

?
База MySql у меня удаленная. незнаю даже где, наверно где то далеко.


 

Автор: SergeBS 30.5.2006, 08:12
murod, 
My.ini - в каталоге %WINDOWS% на машине, где стоит сервер. Сервер - перезапустить. MyODBC - на любом сайте, посвященном MySQL, есть. У меня - связка myODBC 3.51/Delphi 7-ADO/MySQL 4.0.1. 

Автор: murod 30.5.2006, 15:00
наверно поменять инишку я не смогу. И сервер не на виндовом хостинге. Там стоит Linux. И админы не согласяться на это! 
Может есть другой путь. Вот я не как не могу понять из за чего проблемы с кодировкой! чем это связано? И какую кодировку использует дельфи по умолчанию, может кодировку моей программы поменять? 

Автор: SergeBS 30.5.2006, 16:23
murod, 
Цитата

И сервер не на виндовом хостинге. Там стоит Linux.

а у меня - на OS/2-Warp. Своего сервера инишку изучи. Гадать, какая у него кодировка по умолчанию можно долго.  

Автор: murod 30.5.2006, 16:38
А зачем мне изучать инишку сервера? может както по другому можно обойтись? smile  

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