Региональные установки

io
Дата: 27.05.2004 16:14:45
Люди, подскажите как ADP подключить, чтобы он использовал региональные установки. А то с сервера для типа данных money приходит 4-е знака после запятой, а надо 0,00р.
Можно ли в свойствах подключения это дело приписать(желательно не ODBC, а файл-подключение)
ищ
Дата: 27.05.2004 16:48:54
как ты думаешь, взбитые сливки из чего делают?
АлексейК
Дата: 27.05.2004 17:23:26
а кто сказал что ADP работает через ODBC ?

кто тебе сказал что точность типа money при передаче данных зависит от настройки драйвера подключения к источнику данных ?

если хочешь видеть в формах в округленном виде используй форматирование в контроле

если нужно округлать при вычислениях - используй round, fix int и т д
io
Дата: 27.05.2004 17:40:51
автор
а кто сказал что ADP работает через ODBC

Он может и через ODBC и OLE DB поключаться - это наверное и так всем понятно.
А почему я написал желательно не ODBC, потому что не нравится он мне(а именно его нужно настраивать на каждой машине).
автор
кто тебе сказал что точность типа money при передаче данных зависит от настройки драйвера подключения к источнику данных ?

А это в BOL по SQL написано.
Я думал что может кто знает, есть ли возможность прописать этот атрибут в свойствах коннекта (в смысле файл-подключение)

А например если через ODBC подключаться, то при создании этого ODBC есть галка - использовать региональные установки клиента(а сервер здесь ни причем, за представление отвечает клиент).

Вот я и хочу подключиться через OLE DB или файл-подключение, тоьлко не знаю где галку ставить чтобы в 'файл-подключение' использовались региональные установки.

Может кто нибудь посоветует что-нибудь попроще
АлексейК
Дата: 27.05.2004 18:13:56
1 покажи мне то место bol где описывается как можно изменить класс точности
типа money настройками драйвера

я нашел только
money and smallmoney
Monetary data types for representing monetary or currency values.

money
Monetary data values from -2^63 (-922,337,203,685,477.5808) through 2^63 - 1 (+922,337,203,685,477.5807),
with accuracy to a ten-thousandth of a monetary unit. Storage size is 8 bytes.

smallmoney
Monetary data values from - 214,748.3648 through +214,748.3647, with accuracy to a ten-thousandth of a monetary unit.
Storage size is 4 bytes. 


2
автор
Он может и через ODBC и OLE DB поключаться - это наверное и так всем понятно


мне лично непонятно как подключить ADP проект к серверу через ODBC...
всегда считал что подключение проекта возможно только через OLE DB


3 региональные настройки есть в панели управления виндой но там устанавливается не класс точности типа money а число отбражаемых цифр
Владимир Саныч
Дата: 27.05.2004 18:15:21
АлексейК
я нашел только
money and smallmoney

А я еще знаю:

Time is Money
АлексейК
Дата: 27.05.2004 18:16:13
ищ засветился, хотя и так все знали ))
io
Дата: 28.05.2004 09:44:28
Да, с ODBC Я пожалуй погоричился, но хамить то зачем?
Да и региональные установки надстройками драйвера можно видимо только через ODBC установить. Можете сами проверить: создаете новый ODBC , выбираете SQL Server провайдер и на вкладке где кнопка далее переходит в состояние готово смотрите галку возле которой написано:Use regional setting when outlutting currency, numbers, dates and times.


Что в BOL написано:
SQL_SOPT_SS_REGIONALIZE
The driver uses this attribute to determine data conversion at the statement level. The attribute causes the driver to respect the client locale setting when converting date, time, and currency values to character strings. The conversion is from SQL Server native data types to character strings only.

SQL_RE_OFF Default. The driver does not convert date, time, and currency data to character string data using the client locale setting.
SQL_RE_ON The driver uses the client locale setting when converting date, time, and currency data to character string data.

Regional conversion settings apply to currency, numeric, date, and time data types. The conversion setting is only applicable to:

Output conversions when currency, numeric, date, or time values are converted to character strings.
Bulk copy in operations containing character columns when BCP6xFILEFMT is also set on.

Note When the statement option SQL_SOPT_SS_REGIONALIZE is on, the driver uses the locale registry settings for the current user. The driver does not honor the current thread's locale if the application sets it by, for example, calling SetThreadLocale.

Altering the regional behavior of a data source can cause application failure. An application that parses date strings and expects date strings to appear as defined by ODBC, could be adversely affected by altering this value.

Но очевидно это тоже для ODBC, тогда как в OLEDB это сделать?
io
Дата: 28.05.2004 09:53:48
автор
3 региональные настройки есть в панели управления виндой но там устанавливается не класс точности типа money а число отбражаемых цифр

Дело в том что мне надо чтобы он и отображал(округляя) 2 поседние цифры, а также чтобы он букву 'р.' подставлял в конце.
И еще что интересно, если вьюерс запустить (нажатием enter), то там денежный тип отображается как положено 2 занака после запятой и национальная валюта в конце, а если рекордсет открыть - то денежный тип отображается с 4-мя знаками после запятой и нет национальной валюты.
АлексейК
Дата: 28.05.2004 10:06:29
автор
Да и региональные установки надстройками драйвера можно видимо только через ODBC установить. Можете сами проверить: создаете новый ODBC , выбираете SQL Server провайдер и на вкладке где кнопка далее переходит в состояние готово смотрите галку возле которой написано:Use regional setting when outlutting currency, numbers, dates and times.

Что в BOL написано:
SQL_SOPT_SS_REGIONALIZE
The driver uses this attribute to determine data conversion at the statement level. The attribute causes the driver to respect the client locale setting when converting date, time, and currency values to character strings. The conversion is from SQL Server native data types to character strings only.


перевожу, вот о чем здесь:
только при преобразовании драйвером от типов дата, валюта, денежный в строковые типы. это означает что если провайдер будет возвращать данные типа деньги без конвертации в строковый тип то эта настройка на него не повлияет.


автор
Но очевидно это тоже для ODBC, тогда как в OLEDB это сделать?


ты уверен что тебе нужна именно настройка конвертации типов данных в строковые типы ?

Очень похоже на то что в самом деле требуется либо округление при вычислениях либо округление при показе в контролах формы.

Думаю что резкие высказывания вызваны именно тем что делаешь попытку убедительно высказать мнение о вещах в которых пока не разобрался. ошибок действительно много. практически в каждой фразе ты неправ.

вместо этого следовало задать более простой вопрос:
Как сделать чтобы у меня на формах денежные значения отображались с двумя знаками после запятой

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

или вопрос может быть такой как округлять денежный тип до двух знаков после запятой при проведении расчетов
тебе бы ответили: используй функцию round (значение, 2)