Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Разделитель целой и дробной части  [new]
Tigriwka
Member

Откуда:
Сообщений: 10
Добрый день!

Прощу помощи в следующей ситуации...

Имеется Microsoft SQL Server (2005) Management Studio 9.00.5000.00
Данные со сторонней программы выгружаются и формируют текстовый файл.
Запущена служба, которая проверяет наличие этого файла и начинает его парсить.
В файле содержатся дробные числа (цены, количества,....).
В файле разделителем дробной части является ",".
SQL обрабатывает и записывает всё в таблицу (типы полей money и decimal(15,3))
Сервер локальный (на той же машине).

На одной из клиентских машин произошло что-то непонятное.
Файл стал парситься без учета разделителя как будто его вообще нет, без всяких ошибок, т.е. "123,45" -- превращается в 12345.
Код обработки НЕ менялся. На других машинах файл обрабатывается как надо.

Пробовал менять региональные настройки - не помогло.
Поискал по темам, но решения так и не нашел. Выяснил - в SQL разделителем всегда является точка.
Но так как 32 компьютера обрабатывают файл нормально, а одна глючит, подозреваю, что дело все же в настройках.
Подскажите, где может хранится что-то могущее повлиять на преобразование данных....
1 сен 15, 14:11    [18095245]     Ответить | Цитировать Сообщить модератору
 Re: Разделитель целой и дробной части  [new]
Tigriwka
Member

Откуда:
Сообщений: 10
Код обработки защищен даже от просмотра...
1 сен 15, 14:13    [18095265]     Ответить | Цитировать Сообщить модератору
 Re: Разделитель целой и дробной части  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
И при чем тут MSSQL, если "Запущена служба, которая проверяет наличие этого файла и начинает его парсить"?
1 сен 15, 14:13    [18095266]     Ответить | Цитировать Сообщить модератору
 Re: Разделитель целой и дробной части  [new]
Tigriwka
Member

Откуда:
Сообщений: 10
Гавриленко Сергей Алексеевич,

Я не уверен, что именно парсит файл, служба или хранимая процедура, поскольку вся связка от лицензионного производителя.
В общем, суть вопроса в том, какие настройки могут повлиять на преобразование данных в SQL, а именно в типы money и decimal, что может привести к ситуации описанной выше...
1 сен 15, 14:17    [18095309]     Ответить | Цитировать Сообщить модератору
 Re: Разделитель целой и дробной части  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Tigriwka
Гавриленко Сергей Алексеевич,

Я не уверен, что именно парсит файл, служба или хранимая процедура, поскольку вся связка от лицензионного производителя.
В общем, суть вопроса в том, какие настройки могут повлиять на преобразование данных в SQL, а именно в типы money и decimal, что может привести к ситуации описанной выше...
Ну так обратитесь в службу поддержки производителя вашего ПО. Настройку сервера "парсить криво (да/нет)" не завезли.
1 сен 15, 14:19    [18095324]     Ответить | Цитировать Сообщить модератору
 Re: Разделитель целой и дробной части  [new]
Glory
Member

Откуда:
Сообщений: 104751
Tigriwka
Я не уверен, что именно парсит файл, служба или хранимая процедура, поскольку вся связка от лицензионного производителя.

Даже если это процедура MSSQL, то вы уже выяснили, что "в SQL разделителем всегда является точка."

Tigriwka
В общем, суть вопроса в том, какие настройки могут повлиять на преобразование данных в SQL, а именно в типы money и decimal, что может привести к ситуации описанной выше...

На стороне MSSQL - никакие
1 сен 15, 14:19    [18095328]     Ответить | Цитировать Сообщить модератору
 Re: Разделитель целой и дробной части  [new]
Tigriwka
Member

Откуда:
Сообщений: 10
Гавриленко Сергей Алексеевич,

Производитель не может помочь в этом вопросе...долгая история...

Вопрос остается:
Какие настройки могут повлиять на преобразование данных в SQL, а именно из String в типы money и decimal, что может привести к ситуации описанной выше...
1 сен 15, 14:21    [18095347]     Ответить | Цитировать Сообщить модератору
 Re: Разделитель целой и дробной части  [new]
Glory
Member

Откуда:
Сообщений: 104751
Tigriwka
Какие настройки могут повлиять на преобразование данных в SQL, а именно из String в типы money и decimal

Никакие

Tigriwka
что может привести к ситуации описанной выше...

Баги в клиентском приложении могут привести к такой ситуации
1 сен 15, 14:22    [18095367]     Ответить | Цитировать Сообщить модератору
 Re: Разделитель целой и дробной части  [new]
Konst_One
Member

Откуда:
Сообщений: 11621
Tigriwka
SQL обрабатывает и записывает всё в таблицу (типы полей money и decimal(15,3))


это как и чем "он" обрабатывает? SSIS, Data Import, Stored Procedure, AdHoc Query, bcp ?
1 сен 15, 14:23    [18095377]     Ответить | Цитировать Сообщить модератору
 Re: Разделитель целой и дробной части  [new]
Tigriwka
Member

Откуда:
Сообщений: 10
Glory,

Спасибо!
Теперь хотя бы проблема более локализуется.
Т.е. на Sql никак не повлиять. Значит дело в службе.
1 сен 15, 14:23    [18095379]     Ответить | Цитировать Сообщить модератору
 Re: Разделитель целой и дробной части  [new]
aleks2
Guest
Tigriwka
На одной из клиентских машин
Подскажите, где может хранится что-то могущее повлиять на преобразование данных....


Дык, установи региональные настройки или, хотя бы, десятичный разделитель в Windows клиентской машины.
1 сен 15, 14:24    [18095386]     Ответить | Цитировать Сообщить модератору
 Re: Разделитель целой и дробной части  [new]
Tigriwka
Member

Откуда:
Сообщений: 10
aleks2,

Tigriwka
...Пробовал менять региональные настройки - не помогло. ...

Никто не сталкивался со связкой кассы Frontol (драйвер от Астор, служба SMS-узел) --> SQL ?

Похоже придется систему переустанавливать (
1 сен 15, 14:34    [18095506]     Ответить | Цитировать Сообщить модератору
 Re: Разделитель целой и дробной части  [new]
invm
Member

Откуда: Москва
Сообщений: 9827
Tigriwka
"123,45" -- превращается в 12345
Так и будет, если целевой тип money и преобразование производится средствами сервера.
Tigriwka
Пробовал менять региональные настройки - не помогло.
Есть еще default language у имени входа. Может влиять, если парсинг делается на строне сервера.
1 сен 15, 14:35    [18095511]     Ответить | Цитировать Сообщить модератору
 Re: Разделитель целой и дробной части  [new]
Konst_One
Member

Откуда:
Сообщений: 11621
Tigriwka
aleks2,

Tigriwka
...Пробовал менять региональные настройки - не помогло. ...

Никто не сталкивался со связкой кассы Frontol (драйвер от Астор, служба SMS-узел) --> SQL ?

Похоже придется систему переустанавливать (


профайлером на SQL-сервере отловить запросы с плохой машины и проанализировать
1 сен 15, 14:37    [18095528]     Ответить | Цитировать Сообщить модератору
 Re: Разделитель целой и дробной части  [new]
invm
Member

Откуда: Москва
Сообщений: 9827
Кстати, и клиент может определять региональные настройки по языку соединения, а не брать их из ОС.
1 сен 15, 14:39    [18095553]     Ответить | Цитировать Сообщить модератору
 Re: Разделитель целой и дробной части  [new]
Tigriwka
Member

Откуда:
Сообщений: 10
Konst_One

профайлером на SQL-сервере отловить запросы с плохой машины и проанализировать


Спасибо, попробую...только установить надо))

invm
Кстати, и клиент может определять региональные настройки по языку соединения, а не брать их из ОС.


А можно рассказать поподробнее? Я менял региональные настройки для языка по умолчанию "Русский", но это, как я понимаю, как раз настройки ОС...
1 сен 15, 14:48    [18095624]     Ответить | Цитировать Сообщить модератору
 Re: Разделитель целой и дробной части  [new]
Glory
Member

Откуда:
Сообщений: 104751
Tigriwka
Я менял региональные настройки для языка по умолчанию "Русский", но это, как я понимаю, как раз настройки ОС...

Для какой учетной записи вы задавали эти настройки ? Для той, под которой работает ваша некая служба ?
1 сен 15, 14:50    [18095639]     Ответить | Цитировать Сообщить модератору
 Re: Разделитель целой и дробной части  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8807
aleks2
Tigriwka
На одной из клиентских машин
Подскажите, где может хранится что-то могущее повлиять на преобразование данных....


Дык, установи региональные настройки или, хотя бы, десятичный разделитель в Windows клиентской машины.


Не все так просто, возможно, придется установить русский GUID для Windows. Или как он там называется.
1 сен 15, 14:50    [18095640]     Ответить | Цитировать Сообщить модератору
 Re: Разделитель целой и дробной части  [new]
aleks2
Guest
Tigriwka
менял региональные настройки для языка по умолчанию "Русский", но это, как я понимаю, как раз настройки ОС...

Поциент не ф курсе?
Региональные настройки индивидуальны для учетки. А ишо есть настройки для учетки компутера...

И изменение для "Васи" - не поможет "Феде".
1 сен 15, 14:52    [18095657]     Ответить | Цитировать Сообщить модератору
 Re: Разделитель целой и дробной части  [new]
invm
Member

Откуда: Москва
Сообщений: 9827
Tigriwka
А можно рассказать поподробнее?
Подробности в документации по create/alter login.
В SSMS default language можно посмотреть в свойствах логина.
1 сен 15, 15:07    [18095768]     Ответить | Цитировать Сообщить модератору
 Re: Разделитель целой и дробной части  [new]
Tigriwka
Member

Откуда:
Сообщений: 10
Glory,

Пользователь=локальный админ и служба запускается под ним же...
1 сен 15, 15:17    [18095818]     Ответить | Цитировать Сообщить модератору
 Re: Разделитель целой и дробной части  [new]
Konst_One
Member

Откуда:
Сообщений: 11621
Tigriwka
служба запускается под ним же.


это вы настроили на закладке LogOn у этой службы?
1 сен 15, 15:18    [18095822]     Ответить | Цитировать Сообщить модератору
 Re: Разделитель целой и дробной части  [new]
Tigriwka
Member

Откуда:
Сообщений: 10
Konst_One,

Хммм, действительно, возможно служба устанавливалась под администратором...сейчас пойду проверять
1 сен 15, 15:20    [18095828]     Ответить | Цитировать Сообщить модератору
 Re: Разделитель целой и дробной части  [new]
Tigriwka
Member

Откуда:
Сообщений: 10
Tigriwka,

Спасибо всем огромное за помощь!!!
В результате проверить региональные настройки встроенной учетки администратора не вышло, уже переустановили систему. Все заработало. Но при повторении уже знаю куда смотреть...
2 сен 15, 08:26    [18098109]     Ответить | Цитировать Сообщить модератору
 Re: Разделитель целой и дробной части  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
офф: 21 век, а постоянно имеют место идиотские проблемы с десятичными разделителями. Ну не жесть ? :)
2 сен 15, 09:40    [18098303]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить