Поиск:

Ответ в темуСоздание новой темы Создание опроса
> краказябры в таблице =(, BDE, Delphi 
V
    Опции темы
uranpro
Дата 15.12.2008, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 571
Регистрация: 7.5.2008
Где: Moscow city

Репутация: нет
Всего: 1



программа коряво добавляет русские слова в таблицу, но не на всех компах(странно)

принцип такой

Код

q.sql.text:=
inset into t1 values :pName

...

q.params.items[0].value:=eName.text;
q.execsql;

...


на некоторых компах вместо рус букв пишет ####

т.е.
пишу = БДЕ МАСДАЙ !!!
в таблице = ### ###### !!!

пробовал менять у едита чарсет, помогало, но не всегда =(

что делать ??


--------------------
I want a perfect soul
PM MAIL ICQ   Вверх
uranpro
Дата 15.12.2008, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 571
Регистрация: 7.5.2008
Где: Moscow city

Репутация: нет
Всего: 1



что, никто не знает ?


--------------------
I want a perfect soul
PM MAIL ICQ   Вверх
Frees
Дата 15.12.2008, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 23
Всего: 54



В Database Desktop поставьте правильный Language Driver у таблицы, например, Pdox ANSI Cyrr. 

 

Это простой вопрос в том случае, если база уже создана на диске. Если мы создаем базу динамически из программы, то как потом поставить русский язык без Database Desktop'а? 

 

Оказывается это не так просто. Я перерыл весь инет и так и не нашел. В итоге пришлось потрудится и получилась следующая функция: 

Code:
 
{ Устанавливает русский LANGDRIVER для таблицы BDE (Paradox или dBASE)}

{ Таблица должна уже существовать на диске 

Если вы создаете таблицу динамически,

не забудьте вызвать Table.CreateTable }

Код

 

procedure SetTableRussianLanguage(Table: TTable);

var

  Props: CURProps;

  hDb: hDBIDb;

  TableDesc: CRTblDesc;

  OptDesc: FLDDesc;

  OptData: array [0..250] of Char;

  S: string;

const   // Define propertly table type & codepage from list below

  LDName = 'ancyrr';   // Paradox ANSI Cyrillic 

  // LDName = 'cyrr';  // Paradox Cyrr 866

  // LDName = 'DB866ru0'; // dBASE RUS cp866 

 

begin

// Get handle (if table still not opened)

  Table.Open;

  // Get the table properties to determine table type...

  Check(DbiGetCursorProps(Table.Handle, Props));

 

  // Blank out the structure...

  FillChar(TableDesc, sizeof(TableDesc), 0);

  FillChar(OptDesc, SizeOf(OptDesc), #0);

  // Get the database handle from the table's cursor handle...

 

  Check( DbiGetObjFromObj(hDBIObj(Table.Handle), objDATABASE,

         hDBIObj(hDb)));

 

  { If table name contain cyrillic or other native character,

     convert name to OEM }

 

  SetLength(S, Length(Table.TableName));

  CharToOEM(PChar(Table.TableName), @S[1]);

 

  // Put the table name in the table descriptor...

  StrPCopy(TableDesc.szTblName, S{Table.TableName});

  // Put the table type in the table descriptor...

  StrPCopy(TableDesc.szTblType, Props.szTableType);

  // Set the Pack option in the table descriptor to TRUE...

 

  StrCopy(OptDesc.szName, 'LANGDRIVER');

  OptDesc.iLen:=Length(LDName)+1;

  TableDesc.iOptParams:=1;

  TableDesc.pfldOptParams:=@OptDesc;

  TableDesc.pOptData:=@OptData;

  StrPCopy(OptData, LDName);

 

  // Close the table so the restructure can complete...

  Table.Close;

  // Call DbiDoRestructure...

  Check(DbiDoRestructure(hDb, 1, @TableDesc, nil, nil, nil, False));

end;
 


(с)DRKB

Добавлено через 1 минуту и 47 секунд
Цитата(uranpro @  15.12.2008,  16:47 Найти цитируемый пост)
программа коряво добавляет русские слова в таблицу, но не на всех компах(странно)

может BDE переставить там где не работает


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
uranpro
Дата 15.12.2008, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 571
Регистрация: 7.5.2008
Где: Moscow city

Репутация: нет
Всего: 1



Frees, спс, попробую...


--------------------
I want a perfect soul
PM MAIL ICQ   Вверх
Akella
Дата 16.12.2008, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(uranpro @  15.12.2008,  14:47 Найти цитируемый пост)
но не на всех компах(странно)

Нужно настроить BDE (Paradox lang)
user posted image


user posted image

Для работы с DBase Нужно настроить языковый драйвер на dBASE RUS cp866 опять же в двух местах.


Цитата(uranpro @  15.12.2008,  14:47 Найти цитируемый пост)
пишу = БДЕ МАСДАЙ !!!

Неужели нельзя отказаться от BDE и перейти на клиент/сервер?


Это сообщение отредактировал(а) Akella - 16.12.2008, 19:59
PM MAIL   Вверх
Akella
Дата 16.12.2008, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Проще всего настроить BDE на одном компьютере и потом параметры реестра экспортировать.
PM MAIL   Вверх
uranpro
Дата 17.12.2008, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 571
Регистрация: 7.5.2008
Где: Moscow city

Репутация: нет
Всего: 1



Akella, да, спасибо)) разобрался) 

Цитата(Akella @  16.12.2008,  19:52 Найти цитируемый пост)
Неужели нельзя отказаться от BDE и перейти на клиент/сервер?

конечно, я так и сказал им))) программа только на одном буке стоять будет, он не в сети и инет не постоянный 10кб/с )) да вобще он во Франции, ###...


--------------------
I want a perfect soul
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0956 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.