Tomsk Sysadmins Forum

Windows => Администрирование => Topic started by: Fedor on February 07, 2007, 16:11:08

Title: Проблема с шрифтами в Базе данных
Post by: Fedor on February 07, 2007, 16:11:08
Суть проблемы состоит в следующем, писалась база данных на одном компьютере в Delphi (ос Windows XP), в базе данных создавались отчёты с помощью мастрера отчётов. Потом с этой базой данных начали работать на другом компьютере, ос Windows XP, отчёты стали формироваться нечитаемыми символами, такие же символы стали отображаться в элементе Ttable. Пробывал запускать программу на разных компьютера под Windows XP, в некоторых корректно отображаются символы в других абракадабра.
Пробывал с кодовой страницей 1252 поэкспериментировать, результатов не дало.
Кто что посоветует по данному вопросу?
Title: Проблема с шрифтами в Базе данных
Post by: vak on February 08, 2007, 10:49:54
Quote from: Fedor
Суть проблемы состоит в следующем, писалась база данных на одном компьютере в Delphi (ос Windows XP), в базе данных создавались отчёты с помощью мастрера отчётов. Потом с этой базой данных начали работать на другом компьютере, ос Windows XP, отчёты стали формироваться нечитаемыми символами, такие же символы стали отображаться в элементе Ttable. Пробывал запускать программу на разных компьютера под Windows XP, в некоторых корректно отображаются символы в других абракадабра.
Пробывал с кодовой страницей 1252 поэкспериментировать, результатов не дало.
Кто что посоветует по данному вопросу?
Хоть бы написал что за движок БД используется.
Title: Проблема с шрифтами в Базе данных
Post by: Fedor on February 08, 2007, 14:07:31
Quote from: vak
Хоть бы написал что за движок БД используется.

СУБД Paradox
Title: Проблема с шрифтами в Базе данных
Post by: vak on February 08, 2007, 14:17:00
Quote from: Fedor
СУБД Paradox
Если всё это работает через BDE, то сравни настройки Native Drivers для Paradox на машинах.
Title: Проблема с шрифтами в Базе данных
Post by: Fedor on February 08, 2007, 17:02:53
Quote from: vak
Если всё это работает через BDE, то сравни настройки Native Drivers для Paradox на машинах.

Просто потом я попробывал без BDE Administrator (прописал программно путь к BD), тот же результат, даже если на машине не установлен BDE Administrator
Title: Проблема с шрифтами в Базе данных
Post by: visual 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
Title: Проблема с шрифтами в Базе данных
Post by: Fedor 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 не используется, программным путём ищется база данных в папке с программой, но на разных машинах бывают проблемы со шрифтами.
Title: Проблема с шрифтами в Базе данных
Post by: Xray_Linux_Root 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

З.Ы. Символы выводятся правильно только используется шрифт в котором отсутствуют кириллические символы. Может и тебе поможет.
Title: Проблема с шрифтами в Базе данных
Post by: Fedor on February 09, 2007, 21:19:26
Quote from: Xray_Linux_Root
З.Ы. Символы выводятся правильно только используется шрифт в котором отсутствуют кириллические символы. Может и тебе поможет.

  Прийдётся по ходу редактировать в Delphi, указывать другой шрифт и снова набирать инфу. Только не могу понять, почему на одних машинах корректно отображается на других коряво. Просто тут ещё одна проблема, в конторе на одной машине переставили винду, там было много самописных BD, данные хранилис в *.txt файлах, в общем та же проблема. Как писать BD чтобы она корретно отображалась по крайней мере в винде.
Title: Проблема с шрифтами в Базе данных
Post by: visual on February 09, 2007, 22:18:33
Quote from: Fedor
Прийдётся по ходу редактировать в Delphi, указывать другой шрифт и снова набирать инфу. Только не могу понять, почему на одних машинах корректно отображается на других коряво.
потому что не везде указал что дефолтовый чарсет кириллица, а не латиница. сравни ветки FontMapper в реестре.
Title: Проблема с шрифтами в Базе данных
Post by: Fedor on February 09, 2007, 22:48:49
Quote from: visual
потому что не везде указал что дефолтовый чарсет кириллица, а не латиница. сравни ветки FontMapper в реестре.

У меня кстати такой косяк начился когда винду другую поставил, сейчас на Win2K3. Какие тогда надо настойки в Delphi устанавливать по умолчанию, чтобы шрифты везде корректно отображались?
Title: Проблема с шрифтами в Базе данных
Post by: visual 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
Title: Проблема с шрифтами в Базе данных
Post by: Fedor 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 чтобы везде нормально отображались шрифты ?
Title: Проблема с шрифтами в Базе данных
Post by: visual on February 10, 2007, 10:07:28
Quote from: Fedor
Не помогло
эти настройки вступают в силу после перезагрузки.
Quote from: Fedor
видно различия в винде такие, одна OSrus, другая русифицирована MUI, как тогда писать BD чтобы везде нормально отображались шрифты ?
либо настраивать винду как было показано ранее, а такая проблема может возникнуть с любой буржуйской софтиной когда начнешь с кириллицей. другой вариант - явно указать в коде софтины чарсет шрифта. в этом случае приложение не будет работать там, где в системе не будет установлен соответствующий чарсет.
Title: Проблема с шрифтами в Базе данных
Post by: Fedor on February 10, 2007, 17:25:32
Quote from: visual
эти настройки вступают в силу после перезагрузки.
либо настраивать винду как было показано ранее, а такая проблема может возникнуть с любой буржуйской софтиной когда начнешь с кириллицей. другой вариант - явно указать в коде софтины чарсет шрифта. в этом случае приложение не будет работать там, где в системе не будет установлен соответствующий чарсет.

Как прописать в программе чтобы в реестре устанавливался нужный чарсет шрифта? Т.е. думаю  программно записывать значения чарсет шрифта.
Title: Проблема с шрифтами в Базе данных
Post by: visual on February 10, 2007, 18:16:39
Quote from: Fedor
Как прописать в программе чтобы в реестре устанавливался нужный чарсет шрифта? Т.е. думаю  программно записывать значения чарсет шрифта.
плохая идея. эта ветка реестра обычно открыта пользователю только на просмотр. или у тебя все пользователи работают под правами администратора? самый правильный способ - корректная настройка рабочих станций перед тем как они будут установлены пользователю, либо распространение этой настройки через групповые политики. если нет AD, то ручками на каждой машине, локально или по сети.
Title: Проблема с шрифтами в Базе данных
Post by: Fedor on February 13, 2007, 14:54:00
Quote from: visual
плохая идея. эта ветка реестра обычно открыта пользователю только на просмотр. или у тебя все пользователи работают под правами администратора? самый правильный способ - корректная настройка рабочих станций перед тем как они будут установлены пользователю, либо распространение этой настройки через групповые политики. если нет AD, то ручками на каждой машине, локально или по сети.

Кстати какие файлы нужно в програмку положить чтобы не устанавливать BDE Administrator, а просто програмку заделать в инстолятор и нужные файлы добавить туда же.
Пользователи работают под провами User, поправил локально.
Title: Проблема с шрифтами в Базе данных
Post by: visual on February 15, 2007, 09:31:44
Quote from: Fedor
Кстати какие файлы нужно в програмку положить чтобы не устанавливать BDE Administrator, а просто програмку заделать в инстолятор и нужные файлы добавить туда же.
Пользователи работают под провами User, поправил локально.
курить доки ...\BDE\bdedeploy.txt до полного просветления.