كيف يمكنك استخدام DinaryWriter لكتابة تنسيق MS SQL الأصلي الصحيح لنوع بيانات المال؟

StackOverflow https://stackoverflow.com/questions/562042

سؤال

كيف يمكنك استخدام DinaryWriter لكتابة تنسيق MS SQL الأصلي الصحيح لنوع بيانات المال؟

أرغب في اتخاذ قيمة في .NET، اقرأ من ملف كتمثيل سلسلة مبلغ عشري (فعلا نوع بيانات "أموال تصدير" من SQL، ولكن هذا غير مهم).

كيف يمكنني استخدام كاتب ثنائي لكتابة القيمة بحيث يمكنك استخدام BCP أو السائبة إدراج في وضع التنسيق الأصلي لقراءة القيمة بنجاح؟

هل كانت مفيدة؟

المحلول

(أين هو كاتبة ثنائية مثيل سابقا)

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

قد يكون هناك طرق نظافة أو أفضل، ولكن يبدو أن هذا موافق

كجوهر يصل، هذا التنسيق هو فقط لأعمدة النقود غير الفارغة، وأعتقد أن عليك كتابة البايت الباغة أولا أو شيء لهذا التأثير لأعمدة النقود غير القابلة لإلا

نصائح أخرى

لا أتذكر كيفية القيام بقيم فارغة على الأنواع الرقمية في الملفات المحددة مع BCP لكنني أصدق إذا كنت تستخدم ملف بطول البادئة، فإن قيمة طول -1 يدل على قيمة فارغة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top