編集:これをまっすぐなSQLの質問に変えましょう...
Microsoft Inkデータを表すバイト配列を含むvarbinary(max)列があります。インクデータはストロークで構成されており、ストロークは0x00で区切られているように見えます。例えば
0x0090011D04A4048C040304481045141914320800C03402E9A46242330800E01202D0BA014211ABAAD3411E060484E24F6C400A0701096B800A4AC00A060108690943800A2B3C82FCD9F9B56001165CB61440059412CA8B2882FC61F8C66692772AC4D92A2C22E5CD2CAB08DCBB1365940A212182FE043BF810FCCCD6B360AB9A2A451482FC6DF8D664AB337C55DCA9B2D5B650 ...
ストローク1は0090011D04A4048C0403044810451419143208
ストローク2は00C03402E9A462423308です(両方の最後の0x08は偶然の一致だと思います)
等
挿入時にデータが切り捨てられたため、最後のストロークが破損しています。データから最後のストロークのみを削除するにはどうすればよいですか?可能であれば、SQL更新でこれを実行したいと思います。
Fluent NHibernateマッピングSNAFUにより、8000バイトで切り捨てられてSQL Serverデータベースのvarbinary(max)列に格納されたMicrosoftInkデータがいくつかあります。このデータを新しいInkオブジェクトにロードしようとすると、例外「致命的な障害(HRESULTからの例外:0x8000FFFF(E_UNEXPECTED)」がスローされます。
インクデータを回復することは可能ですか?ストロークとして保存されていることはわかっているので、個々のストロークを識別する区切り文字があれば、末尾の不良データを削除するだけで済みます。