Извлечение вывода varbinary из запроса на сервере sql в классический ASP - PullRequest
0 голосов
/ 28 марта 2010

Я пытаюсь получить выходное значение varbinary из запроса, работающего на SQL Server 2005, в классический ASP.Выполнение ASP просто терпит неудачу, когда дело доходит до части кода, которая просто принимает вывод varbinary в строку.Поэтому я думаю, что мы должны справиться с этим другим способом.

На самом деле, я пытаюсь установить (sp_setapprole) и сбросить (sp_unsetapprole) роли приложения для соединения с базой данных.Сначала я установил подтверждение, затем запустил требуемые запросы и, наконец, сбросил подтверждение.Во время сброса это когда мне нужно значение cookie (varbinary) в моем ASP-коде, чтобы я мог создать запрос типа «exec sp_unsetapprole @cookie».На данном этапе у меня нет значения cookie (varbinary).

Причина, по которой я это делаю, заключается в том, что я получаю сообщение об ошибке «sp_setapprole не был вызван правильно» при попытке установить роли приложения.Я отключил пул, добавив «OLE DB Services = -2; Pooling = False» в строку подключения.

Я знаю, что пул помогает повысить производительность, но здесь я сталкиваюсь с большими проблемами.

Пожалуйста, помогите мне извлечь значение varbinary в классический ASP-файл или предложить способ установки и отмены ролей приложения.Любые решения приветствуются.

Спасибо, Нандагопал

Ответы [ 2 ]

0 голосов
/ 28 марта 2010

Самый простой способ - сохранить значение varbinary из sp_setapprole в наборе записей ADO и хранить это значение, не беспокоясь о фактическом типе (хотя вы должны иметь возможность хранить значение в массиве байтов).

Затем, когда вам нужно поместить это varbinary значение в ваш последний sp_setapprole, вы можете просто использовать значение набора записей. Сделайте это, вызвав sp_setapprole с использованием объекта ADODB.Command:

'--untested, syntax could be slightly off'
Set myCommand = Server.CreateObject("ADODB.Command")
With myCommand
    .ActiveConnection = myConnection
    .CommandType = adCmdStoredProc
    .CommandText = "sp_unsetapprole"
    .Parameters.Append _
        .CreateParameter("@Cookie", adLongVarBinary, adParamInput, fileSize)
    .Parameters(str_ParamName).Attributes = adFldLong
    .Parameters(str_ParamName).AppendChunk myRecordset.Fields("Cookie").Value
    .Execute
End With

Возможно, вы также можете получить некоторые идеи из этого вопроса Stackoverflow .

0 голосов
/ 28 марта 2010

Возможно, вы могли бы попробовать привести ваш тип данных VARBINARY к IMAGE, который достаточно стар, чтобы его можно было использовать в "Классическом" ASP. Просто мысль. Может быть не так.

...