Хранимая процедура, имеющая проблему с заполнением набора записей - PullRequest
0 голосов
/ 21 ноября 2018

У меня возникли некоторые проблемы с ADODB.Recordset.Я вызываю хранимую процедуру, которая возвращает пароль и логин из базы данных.Как только usp выполняется, и пароль, и логин загружаются в набор записей.Если какая-либо строка кода помещается перед установкой пароля в строку, значение пароля возвращается к нулю.Это не с логином, только пароль.Любые мысли о том, что я могу сделать, чтобы это исправить?

Dim objConn     As ADODB.Connection
Dim rstResult   As ADODB.recordset
Dim objCmd      As New ADODB.Command
Dim Param       As cSQLParam
Dim ParamValue  As Variant
Dim lngNumRec   As Long



Set objConn = New ADODB.Connection
objConn.Open "DSN=" & GetProfileString(gRootFolder & "InputFolder\" & "ODBC.bds", "General", "DSN")


Set objCmd = New ADODB.Command

With objCmd
    .ActiveConnection = objConn
    .CommandText = "[dbo].[usp_Credentials_GetUserCredentials]"
    .CommandType = adCmdStoredProc
    .CommandTimeout = 0
    For Each Param In Params
        .Parameters.Append .CreateParameter(Param.Name, Param.DataType, Param.Direction, Param.Size, IIf(Param.Value = "", Null, Param.Value))
    Next

End With



Set rstResult = objCmd.Execute

'any time I add code here the password shows up as Null, If no code is here the 
'correct password is displayed. Could this have to do with the password being 
'encrypted with a Salt on the server?


'Capture the password
gDataRecord.Password = rstResult("Password")

'Capture the Login
gDataRecord.Login = rstResult("LoginName")



rstResult.Close
objConn.Close

1 Ответ

0 голосов
/ 26 ноября 2018

Я разобрался в проблеме.Пароль был определен как NVARCHAR (MAX), когда я изменил его на (255).Набор записей содержал переменную.Спасибо всем, кто взглянул на это.

...