Я ударился головой о стену с этой проблемой в течение большей части двух дней, и мой vbscript/ado супер ржавый.Как отправить данные в unicode в поле nvarchar в хранимой процедуре с помощью ado/vbscript?
Я унаследовал унаследованный продукт. Он содержит метод, который выполняет рудиментарное шифрование на некоторых данных перед его хранением и содержит метод дешифрования, когда данные считываются из базы данных.
Я могу выдать зашифрованное значение на экран, а затем расшифровать зашифрованное значение до оригинала.
Проблема заключается в базе данных.
Когда я пытаюсь отправить эти данные в сохраненный процесс, некоторые символы заменяются символом # 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, вставив зашифрованные данные в поле, и она работает просто отлично. Метод дешифрования точно знает, что делать.
- это ваш файл asp, сохраненный в формате Unicode? – John
Notepad ++ говорит, что это так. – TimWeis75
Вы можете написать письмо для MethodThatReturnsUnicodeDataThatDumpsToTheScreenJustFine(). Важны некоторые вещи, такие как завершение и длина нулевого символа. – Papasmile