Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.011 c
2-1149745508
Wood
2006-06-08 09:45
2006.06.25
Можно ли определить позицию курсора в TEdit и как?


2-1149518593
evgenij_
2006-06-05 18:43
2006.06.25
API Windows


15-1149052365
Ega23
2006-05-31 09:12
2006.06.25
С Днём рождения! 31 мая


2-1149476015
kolbasa
2006-06-05 06:53
2006.06.25
Выборка из таблицы


11-1129044663
mdw
2005-10-11 19:31
2006.06.25
MCKfakeClasses, PActionList и KOLAdd





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский