我得到一個類型不匹配錯誤,當我嘗試運行SQL語句是這樣的:VB/VBScript中 - 相比在WHERE語句(SQL Server)的二進制值
Dim s
s = "test"
"SELECT id FROM mytable WHERE sha1bin = " & SHA1bin(s)
這是我的SHA1bin功能:
Private Function SHA1Bin(s)
Dim asc, enc, bytes
Set asc = CreateObject("System.Text.UTF8Encoding")
Set enc = CreateObject("System.Security.Cryptography.SHA1CryptoServiceProvider")
bytes = asc.GetBytes_4(s)
SHA1Bin = enc.ComputeHash_2((bytes))
Set asc = Nothing
Set enc = Nothing
End Function
據我所知,VBScript並沒有真正的二進制數據類型。我需要做什麼來進行比較,或者我應該將它存儲爲40個字符的十六進制值,以便我可以進行文本比較?
的SQL Server版本您使用的?此外,你是否嘗試'「SELECT ID FROM mytable WHERE sha1bin ='」&SHA1bin(s)&「'」'? – stealthyninja 2011-04-25 20:57:07
SQL Server 2008 Express。我用引號試過了,沒有用。 SQL Server 2008確實有一個HashBytes函數。我想我可以使用它,如果我將我的代碼更改爲使用存儲過程。任何方式在我的SQL語句中使用該函數? – HK1 2011-04-25 21:14:00