如何使用二进制编写器为 Money 数据类型编写正确的 MS SQL 本机格式?

发布于 2024-07-13 15:57:12 字数 193 浏览 11 评论 0原文

如何使用二进制编写器为 Money 数据类型编写正确的 MS SQL 本机格式?

我想在 .net 中获取一个值,从文件中读取作为十进制金额的字符串表示形式(实际上是从 SQL 导出的“Money”数据类型,但这并不重要)。

如何使用二进制写入器写入值,以便可以在本机格式模式下使用 BCP 或 BULK INSERT 成功读取值?

How do you use a binarywriter to write the correct MS SQL native format for the Money data type?

I'd like to take a value in .net, read from a file as string representation of a decimal amount (actually an exported "Money" data type from SQL, but that is unimportant).

How can I use a binary writer to write the value so that you can use BCP or BULK INSERT in native format mode to read the value in successfully?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

南七夏 2024-07-20 15:57:12

(其中 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))

可能有更干净或更好的方法,但这似乎可以

作为提示,这种格式仅适用于非空金钱列,我认为您必须先写入一个长度字节或对于可为空的钱列来说有这样的效果

(where w is a binary writer previously instantiated)

                    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))

There may be cleaner or better ways, but this seems to be ok

as a heads up, this format is only for NON NULL money columns, I think you have to write a length byte first or something to that effect for nullable money columns

苦笑流年记忆 2024-07-20 15:57:12

我不记得如何使用 BCP 对分隔文件中的数字类型执行空值,但我相信如果您使用长度前缀文件,则长度值 -1 表示空值。

I don't recall how to do null values on numeric types in delimited files with BCP but I believe if you use a length-prefixed file, a length value of -1 denotes a null value.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文