将特殊字符传递给 SQL 服务器存储过程
Passing special characters to a SQL Server stored procedure
我有一个加密例程,可以从 2 个变量生成加密字符串。此字符串可能包含也可能不包含 "special characters"。特别给我带来麻烦的是撇号和括号。
我目前使用 [ ]
将参数封装在我的执行命令中。但这并不总是有效。
有没有人有好的解决方案来尝试阻止在分配结束括号时抛出错误?
您尝试过逐字字符串吗?
@"\somestring""";
最简单的解决方案就是转义输入字符串中的撇号:
thePWD = encrypt(request("ap"), request("al"))
set rs = cn.execute("EXEC UpdateUser @uu_pswrd='" & replace(thePWD, "'", "''") & "'")
一种更稳健的处理方法是在您的代码中添加适当的参数处理。这可能不完全正确,因为我用 VBA/VB6 完成此操作已经有一段时间了,但它应该让你接近:
thePWD = encrypt(request("ap"), request("al"))
set cmd = New ADODB.Command
cmd.ActiveConnection = cn
cmd.CommandText = "UpdateUser"
cmd.CommandType = "StoredProcedure"
cmd.Parameters.Add(
cmd.CreateParameter("@uu_pswrd", adVarChar, , 255, thePWD))
set rs = cmd.execute
我有一个加密例程,可以从 2 个变量生成加密字符串。此字符串可能包含也可能不包含 "special characters"。特别给我带来麻烦的是撇号和括号。
我目前使用 [ ]
将参数封装在我的执行命令中。但这并不总是有效。
有没有人有好的解决方案来尝试阻止在分配结束括号时抛出错误?
您尝试过逐字字符串吗?
@"\somestring""";
最简单的解决方案就是转义输入字符串中的撇号:
thePWD = encrypt(request("ap"), request("al"))
set rs = cn.execute("EXEC UpdateUser @uu_pswrd='" & replace(thePWD, "'", "''") & "'")
一种更稳健的处理方法是在您的代码中添加适当的参数处理。这可能不完全正确,因为我用 VBA/VB6 完成此操作已经有一段时间了,但它应该让你接近:
thePWD = encrypt(request("ap"), request("al"))
set cmd = New ADODB.Command
cmd.ActiveConnection = cn
cmd.CommandText = "UpdateUser"
cmd.CommandType = "StoredProcedure"
cmd.Parameters.Add(
cmd.CreateParameter("@uu_pswrd", adVarChar, , 255, thePWD))
set rs = cmd.execute