Главная страница
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.026 c
6-1139889800
Интересующийся
2006-02-14 07:03
2006.06.25
Как поставить и прочитать кук при помощи TServerSocket?


3-1145965808
Alpine
2006-04-25 15:50
2006.06.25
Проблемма с UPPER(FIELD) LIKE .... в IB 7.01


4-1143534352
serg111111
2006-03-28 12:25
2006.06.25
Как в имеющемся приложениия написать сервис?


15-1149110794
Kolan
2006-06-01 01:26
2006.06.25
Среда виснет при отладки в потоках.


2-1149660884
fast2
2006-06-07 10:14
2006.06.25
Как в СтрингГрид удалить выбраную строку?