我有一个加密值,为什么不进入varbinary字段?

时间:2011-08-10 17:39:21

标签: sql-server-2008

我只需修复一些不良记录。我可以将月份与年份交换并重新加密。但是,当我尝试将其再次放入MS SQL SERVER varbinary字段时,它会被截断。使用新的加密值更新表的正确方法是什么?

Conn.Open strDSN
Dim sql : sql = "Select * FROM tmpRefill WHERE CC <> 'NULL' AND CustId = 9944"
rs.Open sql, Conn

Dim custId, email, cc, newCC, upSQL
Do Until rs.EOF
Response.Write rs("CustId")
Response.Write("<br />")
Response.Write rs("email")
Response.Write("<br />")
cc = EnCrypt(rs("CC"))
Response.Write cc
Response.Write("<br />")
cc = Split(cc,"-")
newCC = cc(0) & "-" & cc(2) & "-" & cc(1) & "-" & cc(3)
Response.Write newCC
Response.Write("<br />")
newCC = EnCrypt(newCC)
Response.Write newCC
Response.Write("<br />")
Response.Write("<br /><br />")
rs.MoveNext
Loop

upSQL = "UPDATE tmpRefill SET CC = CONVERT(VARBINARY(500), '" & newCC & "') WHERE CustId = 9944"
Conn.Execute (upSQL)

表列上的数据类型是varbinary(500)所以我不明白为什么我必须将其转换为插入它。

1 个答案:

答案 0 :(得分:0)

查看this answer,了解如何同时使用参数化查询以及传递二进制数据。