Изменение реальной / плавающей точности SQL Server при импорте служб SSIS в базу данных MS-Access - PullRequest
0 голосов
/ 14 июля 2010

Я использую SSIS, чтобы получить результаты из двух представлений в базе данных SQL Server, объединить их (с соответствующим сопоставлением), отфильтровать и поместить в базу данных Access.

Этот процесс работает, ноточность некоторых данных меняется.

Я уже знал о нормальной проблеме с плавающей запятой / реальной проблеме хранения приблизительных значений (например, SQL Server обеспечивает дополнительную точность для чисел с плавающей запятой? ), однакопредставления, на которые ссылается SSIS («представления передачи данных»), выбираются из других представлений («представления уровня детали», которые преобразуются из nvarchars в real / float), которые явно преобразуются следующим образом:

,CONVERT(real,ISNULL(FieldName, 0)) AS Alias

и отображаются в результатах просмотра данных для передачи в 2 dp. Столбец Access определяется как число с размером поля = Double, десятичные разряды = 2).

Тем не менее, число с плавающей точкой / вещественное число приблизительно в доступе отображается значение, а не цифра 2 dp

Поля доступа должны быть Number, а не Text, поэтому я не могу выполнить преобразование в nvarchar.

Есть ли простое решение этой проблемы?

Обновление: Изменение размера поля с Двойного на Единый устраняет эту проблему.Почему размер поля Double изменяет точность числа и почему он не отображается в соответствии с указанным числом десятичных разрядов для Double?

1 Ответ

2 голосов
/ 14 июля 2010

Проверьте раздел справки Access для свойства DecimalPlaces:

"Примечание Параметр свойства DecimalPlaces не действует, если свойство Format пустое или для него задано общее число."

Так что попробуйте изменить свойство Format поля, чтобы увидеть, можете ли вы получить то, что вы хотите отобразить.

...