Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.25;
Скачать: CL | DM;

Вниз

При доступе к БД из NT-сервиса русские буквы в виде "иероглифов"   Найти похожие ветки 

 
Yr2   (2006-05-17 19:03) [0]

Задача: после перезагрузки компьютера NT-сервис подключается к БД MSSQL2000 и записывает в одну из таблиц слово "Привет!" на русском языке. Естественно, что никакая сессия ни с каким пользователем ещё не открыта, то есть сервис запускается под LSA. В этом случае в базе данных слово "Привет!"  выгдядит как ":;%№.%%*", то есть нечитабельно. Если залогиниться под конкретным логином, то NT-сервис начинает корректно записывать в базу русский текст. Я понимаю, что до открытия сессии с пользователем не загружаются никакие установки по-умолчанию, касающиеся кодировки, шрифтов и т.п. Но где и как прописать в NT-сервисе, чтобы он "понимал" русский - не знаю. Помогите, пожалуйста.


 
Desdechado ©   (2006-05-17 19:06) [1]

а обязательно запускать сервис от имени системы?
можно ж настроить, чтоб запускался от имени пользователя


 
Yr2   (2006-05-17 19:15) [2]

To Desdechado:
смена имени "владельца" сервиса  с LSA на Vasia в данном случае ничего не меняет, так как после перезагрузки компьютера сессия с "Васей" НЕ открывается и происходит описанная проблема. Вот если после выставления компьютером окна ввода логина/пароля зайти под логином Vasia (т.е. открыть сессию с пользователем) и перезапустить NT-сервис, уже будучи в сессии - только тогда проблема исчезает.


 
Styx_   (2006-05-18 11:54) [3]


> Естественно, что никакая сессия ни с каким пользователем
> ещё не открыта, то есть сервис запускается под LSA

Сервис запускается под тем аккаунтом, который прописан в его настройках, так что едва ли дело в логине пользователя. Может быть, просто к тому моменту ещё нединициализировалась БД?


 
Yr2   (2006-05-18 12:49) [4]

to Styx_
Так я тоже говорю, что дело не в логине. Дело в загрузке чего-то, что запускается после залогинивания пользователя (нажатия Ctrl-Alt-Del и т.д.).
БД на момент запуска сервиса уже инициализироваласть, так как он (сервис) читает и пишет в базу без проблем. Однако русский текст попадает в базу иероглифами. Отсюда я делаю вывод, что это связана с кодировкой и шрифтами. Но в отличие от обычного делфийского Application, которое имеет форму и соответственно свойства Font/Charset - у сервиса я не нахожу ничего подобного, что можно было бы прописать принудительно.


 
Desdechado ©   (2006-05-18 13:02) [5]

в System и SysUtils есть много переменных, которые инициализируются из локальных настроек системы
возможно, они влияют


 
Styx_   (2006-05-18 13:25) [6]

Надо бы отмониторить SQL-запросы... А шрифты тут никак влиять не могут, так что видимо дело в параметрах подключения к БД.
А если сделать запись из сервиса с задержкой, скажем, в 5 минут - что будет?


 
Yr2   (2006-05-18 14:40) [7]

to Styx_
"Надо бы отмониторить SQL-запросы..."
- чем вы предлагаете отмониторить SQL-запросы (какой программой?) если сессия с пользователем ещё не запущена. То есть мониторинг тоже должен быть NT-сервисом. Да и что это даст? Я и так вижу, что попадает в базу используя клиента базы на другой машине.

"А шрифты тут никак влиять не могут"
- слово "шрифт" я использовал совместно со словом "кодировка", то есть говорил о кодировке в шрифте. Видимо, грамотнее будет сказать, что не загружается русская "кодовая таблица" (я так предполагаю).

"видимо дело в параметрах подключения к БД"
- в каких параметрах? Параметры подключения к БД что до залогинивания пользователя в компьютере, что после залогинивания - не меняются. Но эффект разный. До залогинивания - иероглифы, после - всё нормально.

"А если сделать запись из сервиса с задержкой, скажем, в 5 минут - что будет?"
- что через 5 минут, что через час - эффект стабильно повторяется. Если пользователь не залогинился, то NT-сервис пишет в базу иероглифы целый день...



Страницы: 1 вся ветка

Текущий архив: 2006.06.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.034 c
2-1149679048
Кирей
2006-06-07 15:17
2006.06.25
Работа с winexec


1-1147853235
Шмель
2006-05-17 12:07
2006.06.25
Сортировка


4-1143230385
Eraser
2006-03-24 22:59
2006.06.25
Установка криптопровайдеров


2-1149271022
Mr tray
2006-06-02 21:57
2006.06.25
EM_GETSELTEXT или EM_EXGETSEL с EM_GETTEXTRANGE?


2-1149259611
>BeRDor<
2006-06-02 18:46
2006.06.25
Таймер