Как вы используете двоичную запись для записи правильного собственного формата MS SQL для типа данных Money? - PullRequest
0 голосов
/ 18 февраля 2009

Как вы используете двоичный редактор для записи правильного собственного формата MS SQL для типа данных Money?

Я бы хотел взять значение в .net, прочитать из файла как строковое представление десятичной суммы (на самом деле это экспортированный тип данных «Деньги» из SQL, но это неважно).

Как я могу использовать двоичный модуль записи для записи значения, чтобы вы могли использовать BCP или BULK INSERT в режиме собственного формата для успешного считывания значения?

Ответы [ 2 ]

0 голосов
/ 20 января 2010

Я не помню, как делать нулевые значения для числовых типов в файлах с разделителями с помощью BCP, но я считаю, что если вы используете файл с префиксом длины, значение длины -1 означает нулевое значение.

0 голосов
/ 18 февраля 2009

(где w - двоичный писатель, ранее созданный)

                    Dim dec = CDec(aString)
                    Dim lng = CLng(dec * 10000)
                    Dim bytes = BitConverter.GetBytes(lng)
                    w.Write(bytes(4))
                    w.Write(bytes(5))
                    w.Write(bytes(6))
                    w.Write(bytes(7))
                    w.Write(bytes(0))
                    w.Write(bytes(1))
                    w.Write(bytes(2))
                    w.Write(bytes(3))

Могут быть более чистые или лучшие способы, но, похоже, все в порядке

в качестве заголовка, этот формат предназначен только для NON NULL денежных столбцов, я думаю, что вы должны сначала написать байт длины или что-то на этот счет для столбцов с нулевым денежным значением

...