Форум: "Основная";
Текущий архив: 2006.06.25;
Скачать: [xml.tar.bz2];
ВнизПри доступе к БД из 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c