Author Topic: Проблема с шрифтами в Базе данных  (Read 7931 times)

0 Members and 1 Guest are viewing this topic.

Offline Fedor

  • Full Member
  • ***
  • Posts: 186
  • Karma: +0/-0
Суть проблемы состоит в следующем, писалась база данных на одном компьютере в Delphi (ос Windows XP), в базе данных создавались отчёты с помощью мастрера отчётов. Потом с этой базой данных начали работать на другом компьютере, ос Windows XP, отчёты стали формироваться нечитаемыми символами, такие же символы стали отображаться в элементе Ttable. Пробывал запускать программу на разных компьютера под Windows XP, в некоторых корректно отображаются символы в других абракадабра.
Пробывал с кодовой страницей 1252 поэкспериментировать, результатов не дало.
Кто что посоветует по данному вопросу?

Offline vak

  • Newbie
  • *
  • Posts: 19
  • Karma: +0/-0
Проблема с шрифтами в Базе данных
« Reply #1 on: February 08, 2007, 10:49:54 »
Quote from: Fedor
Суть проблемы состоит в следующем, писалась база данных на одном компьютере в Delphi (ос Windows XP), в базе данных создавались отчёты с помощью мастрера отчётов. Потом с этой базой данных начали работать на другом компьютере, ос Windows XP, отчёты стали формироваться нечитаемыми символами, такие же символы стали отображаться в элементе Ttable. Пробывал запускать программу на разных компьютера под Windows XP, в некоторых корректно отображаются символы в других абракадабра.
Пробывал с кодовой страницей 1252 поэкспериментировать, результатов не дало.
Кто что посоветует по данному вопросу?
Хоть бы написал что за движок БД используется.

Offline Fedor

  • Full Member
  • ***
  • Posts: 186
  • Karma: +0/-0
Проблема с шрифтами в Базе данных
« Reply #2 on: February 08, 2007, 14:07:31 »
Quote from: vak
Хоть бы написал что за движок БД используется.

СУБД Paradox

Offline vak

  • Newbie
  • *
  • Posts: 19
  • Karma: +0/-0
Проблема с шрифтами в Базе данных
« Reply #3 on: February 08, 2007, 14:17:00 »
Quote from: Fedor
СУБД Paradox
Если всё это работает через BDE, то сравни настройки Native Drivers для Paradox на машинах.

Offline Fedor

  • Full Member
  • ***
  • Posts: 186
  • Karma: +0/-0
Проблема с шрифтами в Базе данных
« Reply #4 on: February 08, 2007, 17:02:53 »
Quote from: vak
Если всё это работает через BDE, то сравни настройки Native Drivers для Paradox на машинах.

Просто потом я попробывал без BDE Administrator (прописал программно путь к BD), тот же результат, даже если на машине не установлен BDE Administrator

Offline visual

  • Hero Member
  • *****
  • Posts: 714
  • Karma: +0/-0
    • http://
Проблема с шрифтами в Базе данных
« Reply #5 on: February 08, 2007, 19:25:32 »
Quote from: Fedor
Пробывал с кодовой страницей 1252 поэкспериментировать, результатов не дало.
Кто что посоветует по данному вопросу?
почему с 1252? обычно для работы с парадоксом ставят Pdox ANSI Cyrillic. гораздо реже Paradox Cyrr 866, если систему начали делать еще под досовым парадоксом.
bdeadmin.exe -> configuration -> drivers -> native -> paradox -> langdriver = Pdox ANSI Cyrillic
« Last Edit: February 08, 2007, 19:26:52 by visual »

Offline Fedor

  • Full Member
  • ***
  • Posts: 186
  • Karma: +0/-0
Проблема с шрифтами в Базе данных
« Reply #6 on: February 09, 2007, 20:18:07 »
Quote from: visual
почему с 1252? обычно для работы с парадоксом ставят Pdox ANSI Cyrillic. гораздо реже Paradox Cyrr 866, если систему начали делать еще под досовым парадоксом.
bdeadmin.exe -> configuration -> drivers -> native -> paradox -> langdriver = Pdox ANSI Cyrillic


Дело в том что BDE Administrator не используется, программным путём ищется база данных в папке с программой, но на разных машинах бывают проблемы со шрифтами.
« Last Edit: February 09, 2007, 20:22:15 by Fedor »

Offline Xray_Linux_Root

  • Sr. Member
  • ****
  • Posts: 296
  • Karma: +2/-0
Проблема с шрифтами в Базе данных
« Reply #7 on: February 09, 2007, 20:51:35 »
В свою бытность сисадмином в конторе ... приходилось общаться с гремучей смесью вроде Delphi+Fastreport+Oracle.
Наблюдал подобное.
1. Лечилось перебитием шаблонов отчётов (стираем текст и указывая шрифт, например Arial, и набираем снова то что было написано ранее )
2. Для особо тяжёлых случаев когда программеру влом поднять над клавой пальцы сделал вот такое (так называемая подстановка шрифтов):
Code: [Select]
REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]
"Helv"="MS Sans Serif"
"Tms Rmn"="MS Serif"
"Times"="Times New Roman"
"Helvetica"="Arial"
"MS Shell Dlg"="MS Sans Serif"
"Arial CE,238"="Arial,238"
"Arial Greek,161"="Arial,161"
"Arial Tur,162"="Arial,162"
"Courier New CE,238"="Courier New,238"
"Courier New Greek,161"="Courier New,161"
"Courier New Tur,162"="Courier New,162"
"Times New Roman CE,238"="Times New Roman,238"
"Times New Roman Greek,161"="Times New Roman,161"
"Times New Roman Tur,162"="Times New Roman,162"
"System,0"="System,204"
"Fixedsys,0"="Fixedsys,204"
"Small Fonts,0"="Small Fonts,204"
"MS Serif,0"="MS Serif,204"
"MS Sans Serif,0"="MS Sans Serif,204"
"Courier,0"="Courier New,204"
"Arial Cyr,0"="Arial,204"
"Courier New Cyr,0"="Courier New,204"
"Times New Roman Cyr,0"="Times New Roman,204"
"Tms Rmn,0"="MS Serif,204"
"Helv,0"="MS Sans Serif,204"
"MS Shell Dlg 2"="MS Sans Serif"
"Monotype.com"="Andale Mono"
@="Times New Roman,204"
"Arial Cyr,204"="Arial,204"
"Courier New Cyr,204"="Courier New,204"
"Times New Roman Cyr,204"="Times New Roman,204"
"Times New Roman,0"="Times New Roman,204"
"Times New Roman,204"="Times New Roman,204"
"Arial,0"="Arial,204"
"Arial,204"="Arial,204"
Проверено и работало на системах: NT 4.0 / w2k / WinXP

З.Ы. Символы выводятся правильно только используется шрифт в котором отсутствуют кириллические символы. Может и тебе поможет.
« Last Edit: July 07, 2008, 23:55:15 by Xray_Linux_Root »
Mandrake, ASPLinux, Slackware, RedHat, Fedora, Debian
Зачем M$ Exchange? Есть eGroupware!
-j MASQUERADE + друзья в других сетях помогут построить мир независимо от желания вашего провайдера ;)

Offline Fedor

  • Full Member
  • ***
  • Posts: 186
  • Karma: +0/-0
Проблема с шрифтами в Базе данных
« Reply #8 on: February 09, 2007, 21:19:26 »
Quote from: Xray_Linux_Root
З.Ы. Символы выводятся правильно только используется шрифт в котором отсутствуют кириллические символы. Может и тебе поможет.

  Прийдётся по ходу редактировать в Delphi, указывать другой шрифт и снова набирать инфу. Только не могу понять, почему на одних машинах корректно отображается на других коряво. Просто тут ещё одна проблема, в конторе на одной машине переставили винду, там было много самописных BD, данные хранилис в *.txt файлах, в общем та же проблема. Как писать BD чтобы она корретно отображалась по крайней мере в винде.

Offline visual

  • Hero Member
  • *****
  • Posts: 714
  • Karma: +0/-0
    • http://
Проблема с шрифтами в Базе данных
« Reply #9 on: February 09, 2007, 22:18:33 »
Quote from: Fedor
Прийдётся по ходу редактировать в Delphi, указывать другой шрифт и снова набирать инфу. Только не могу понять, почему на одних машинах корректно отображается на других коряво.
потому что не везде указал что дефолтовый чарсет кириллица, а не латиница. сравни ветки FontMapper в реестре.
« Last Edit: February 09, 2007, 22:19:36 by visual »

Offline Fedor

  • Full Member
  • ***
  • Posts: 186
  • Karma: +0/-0
Проблема с шрифтами в Базе данных
« Reply #10 on: February 09, 2007, 22:48:49 »
Quote from: visual
потому что не везде указал что дефолтовый чарсет кириллица, а не латиница. сравни ветки FontMapper в реестре.

У меня кстати такой косяк начился когда винду другую поставил, сейчас на Win2K3. Какие тогда надо настойки в Delphi устанавливать по умолчанию, чтобы шрифты везде корректно отображались?
« Last Edit: February 09, 2007, 22:49:50 by Fedor »

Offline visual

  • Hero Member
  • *****
  • Posts: 714
  • Karma: +0/-0
    • http://
Проблема с шрифтами в Базе данных
« Reply #11 on: February 09, 2007, 22:57:02 »
Quote from: Fedor
У меня кстати такой косяк начился когда винду другую поставил, сейчас на Win2K3. Какие тогда надо настойки в Delphi устанавливать по умолчанию, чтобы шрифты везде корректно отображались?
Delphi тут ни при чем.
Code: [Select]
REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontMapper]
"ARIAL"=dword:000000cc
"DEFAULT"=dword:000000cc

Offline Fedor

  • Full Member
  • ***
  • Posts: 186
  • Karma: +0/-0
Проблема с шрифтами в Базе данных
« Reply #12 on: February 09, 2007, 23:40:31 »
Quote from: visual
Delphi тут ни при чем.
Code: [Select]
REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontMapper]
"ARIAL"=dword:000000cc
"DEFAULT"=dword:000000cc

Не помогло, видно различия в винде такие, одна OSrus, другая русифицирована MUI, как тогда писать BD чтобы везде нормально отображались шрифты ?

Offline visual

  • Hero Member
  • *****
  • Posts: 714
  • Karma: +0/-0
    • http://
Проблема с шрифтами в Базе данных
« Reply #13 on: February 10, 2007, 10:07:28 »
Quote from: Fedor
Не помогло
эти настройки вступают в силу после перезагрузки.
Quote from: Fedor
видно различия в винде такие, одна OSrus, другая русифицирована MUI, как тогда писать BD чтобы везде нормально отображались шрифты ?
либо настраивать винду как было показано ранее, а такая проблема может возникнуть с любой буржуйской софтиной когда начнешь с кириллицей. другой вариант - явно указать в коде софтины чарсет шрифта. в этом случае приложение не будет работать там, где в системе не будет установлен соответствующий чарсет.

Offline Fedor

  • Full Member
  • ***
  • Posts: 186
  • Karma: +0/-0
Проблема с шрифтами в Базе данных
« Reply #14 on: February 10, 2007, 17:25:32 »
Quote from: visual
эти настройки вступают в силу после перезагрузки.
либо настраивать винду как было показано ранее, а такая проблема может возникнуть с любой буржуйской софтиной когда начнешь с кириллицей. другой вариант - явно указать в коде софтины чарсет шрифта. в этом случае приложение не будет работать там, где в системе не будет установлен соответствующий чарсет.

Как прописать в программе чтобы в реестре устанавливался нужный чарсет шрифта? Т.е. думаю  программно записывать значения чарсет шрифта.

Offline visual

  • Hero Member
  • *****
  • Posts: 714
  • Karma: +0/-0
    • http://
Проблема с шрифтами в Базе данных
« Reply #15 on: February 10, 2007, 18:16:39 »
Quote from: Fedor
Как прописать в программе чтобы в реестре устанавливался нужный чарсет шрифта? Т.е. думаю  программно записывать значения чарсет шрифта.
плохая идея. эта ветка реестра обычно открыта пользователю только на просмотр. или у тебя все пользователи работают под правами администратора? самый правильный способ - корректная настройка рабочих станций перед тем как они будут установлены пользователю, либо распространение этой настройки через групповые политики. если нет AD, то ручками на каждой машине, локально или по сети.

Offline Fedor

  • Full Member
  • ***
  • Posts: 186
  • Karma: +0/-0
Проблема с шрифтами в Базе данных
« Reply #16 on: February 13, 2007, 14:54:00 »
Quote from: visual
плохая идея. эта ветка реестра обычно открыта пользователю только на просмотр. или у тебя все пользователи работают под правами администратора? самый правильный способ - корректная настройка рабочих станций перед тем как они будут установлены пользователю, либо распространение этой настройки через групповые политики. если нет AD, то ручками на каждой машине, локально или по сети.

Кстати какие файлы нужно в програмку положить чтобы не устанавливать BDE Administrator, а просто програмку заделать в инстолятор и нужные файлы добавить туда же.
Пользователи работают под провами User, поправил локально.

Offline visual

  • Hero Member
  • *****
  • Posts: 714
  • Karma: +0/-0
    • http://
Проблема с шрифтами в Базе данных
« Reply #17 on: February 15, 2007, 09:31:44 »
Quote from: Fedor
Кстати какие файлы нужно в програмку положить чтобы не устанавливать BDE Administrator, а просто програмку заделать в инстолятор и нужные файлы добавить туда же.
Пользователи работают под провами User, поправил локально.
курить доки ...\BDE\bdedeploy.txt до полного просветления.