私はこの問題で 2 日間ずっと頭を壁にぶつけていて、私の vbscript/ado は非常に錆びています。
レガシー製品を継承しました。一部のデータを保存する前に基本的な暗号化を実行するメソッドと、データベースからデータを読み取るときに復号化するメソッドが含まれています。
暗号化された値を画面にダンプし、暗号化された値を元の値に復号化できます。
問題はデータベースです。
このデータをストアド プロシージャに送信しようとすると、一部の文字が文字 # 65533 (疑問符の付いたひし形) に置き換えられます。復号化メソッドがこのデータを取得すると、これらの奇妙な文字をどう処理するかわかりません。
私はそれがnvarcharフィールドであることを示していますadVarWChar
Set cmd = Server.CreateObject("ADODB.Command")
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "_sp_InsertData"
cmd.ActiveConnection = DefaultConnectionString
cmd.Parameters.Append cmd.CreateParameter("@somevariable", _
adVarWChar, _
adParamInput, _
255, _
MethodThatReturnsUnicodeDataThatDumpsToTheScreenJustFine())
cmd.Execute
また、暗号化されたデータをフィールドに貼り付けることで、Sql Server Management Studio を介してストアド プロシージャを実行でき、問題なく動作します。復号化メソッドは、何をすべきかを正確に認識しています。