我在程序中定义了一个command 对象和一个recordset对象,希望command对象的一个参数是recordset对象的结果(类型是varbinary 256 类型的),可是在参数赋值过程中出现 错误。 其中我为用户密码用varbinary进行了加密,现在想比较密码是否正确。
是不是command对象的使用出现问题?
谢谢各位!!!!!
代码如下:
dim uid as interger '要查询的用户名
Dim Rs As New ADODB.Recordset
Dim cmd As New ADODB.Command
Dim strQueryUser As String '查询用户名时使用的sql语句 strQueryUser = "select 用户密码 from 用户权限表 where 用户实名ID=" & uid
cn.Open
Rs.ActiveConnection = cn
Rs.Open strQueryUser, , , , adCmdText
With cmd
.ActiveConnection = cn
.CommandType = adCmdText
.CommandText = "select ? = pwdcompare('" & txtPassword.Text & "',?,0)"
.CreateParameter , adInteger, adParamOutput, 4
.CreateParameter , adVarBinary, adParamInput, 256
End With
cmd.Parameters(1) = Rs.Fields!用户密码 !!!!就是这句出现问题!!! cmd.Execute 给出的错误提示是语法错误或访问冲突。
是不是command对象的使用出现问题?
谢谢各位!!!!!
代码如下:
dim uid as interger '要查询的用户名
Dim Rs As New ADODB.Recordset
Dim cmd As New ADODB.Command
Dim strQueryUser As String '查询用户名时使用的sql语句 strQueryUser = "select 用户密码 from 用户权限表 where 用户实名ID=" & uid
cn.Open
Rs.ActiveConnection = cn
Rs.Open strQueryUser, , , , adCmdText
With cmd
.ActiveConnection = cn
.CommandType = adCmdText
.CommandText = "select ? = pwdcompare('" & txtPassword.Text & "',?,0)"
.CreateParameter , adInteger, adParamOutput, 4
.CreateParameter , adVarBinary, adParamInput, 256
End With
cmd.Parameters(1) = Rs.Fields!用户密码 !!!!就是这句出现问题!!! cmd.Execute 给出的错误提示是语法错误或访问冲突。
cmd.Parameters.Append param
cmd.Parameters("Output").Value=Rs.Fields!用户密码
cmd.Execute