在VBScript(ASP环境)中,是否可以将具有空值的参数传递给存储过程?VBScript:将具有空值的参数传递给存储过程?
11
A
回答
2
如果您正在构建字符串以及检查/防范SQL注入,那么您可以简单地在SQL字符串中使用null或逗号分隔的EXEC语句。
'calling a stored proc.
strSQL = "EXEC UpdateCustomer @CustomerID=" & iCustomerID + ",@PhoneNumber=null"
下面是如何使用空的手动内置字符串发送到DB
strSQL = "UPDATE Customer SET PhoneNumber = null WHERE CustomerID = " + iCustomerID
+0
不幸的是我必须使用存储过程来保持项目的一致性。有没有一种方法可以使用存储过程? – burnt1ce 2009-07-21 16:03:04
+0
@Burnt:你能编辑你的问题来展示你如何使用存储过程吗?这里的答案显示了使用存储过程的一种方法,也许您正在使用另一种方式。请包括一些代码,它一定会有所帮助。 – 2009-07-21 16:17:18
10
传递null到一个存储过程,使用命令对象。
Set cn = CreateObject("ADODB.Connection")
Set cmd = CreateObject("ADODB.Command")
cn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Data Source=.\Test"
Set cmd.ActiveConnection = cn
cmd.CommandText = "TestTable.sp_ModifyData"
cmd.CommandType = 4
cmd.NamedParameters = True
set cnParam = cmd.CreateParameter("@RowID",3,3,,-1)
cmd.Parameters.Append cnParam
set cnParam = cmd.CreateParameter("@AddRemoveModify",3,1,,0)
cmd.Parameters.Append cnParam
set cnParam = cmd.CreateParameter("@Value1",3,1,,0)
cmd.Parameters.Append cnParam
set cnParam = cmd.CreateParameter("@Value2",8,1,-1,"Test")
cmd.Parameters.Append cnParam
set cnParam = cmd.CreateParameter("@value3",5,1,,null)
cmd.Parameters.Append cnParam
set cnParam = cmd.CreateParameter("@value4",5,1,,0)
cmd.Parameters.Append cnParam
set cnParam = cmd.CreateParameter("@value5",8,1,-1,"")
cmd.Parameters.Append cnParam
cmd.Execute
cn.Close
Set cmd = Nothing
Set cn = Nothing
对不起,我没有把很多想法命名为我的数据库中的字段。
4
尝试vbNullString或vbNullChar。您可能还需要adParamNullable。
set cnParam = cmd.CreateParameter("@value3",5,1,,vbNullString)
cnParam.Attributes = adParamNullable
cmd.Parameters.Append cnParam
更新:
其实这个工作对我来说:
set cnParam = cmd.CreateParameter("@value3",5,1,,Null)
cnParam.Attributes = adParamNullable
cmd.Parameters.Append cnParam
咦,这工作太:
set cnParam = cmd.CreateParameter("@value3",5,1,,Null)
cmd.Parameters.Append cnParam
进入数字。
2
简短回答:将参数值设置为Null
(VBScript关键字)。
相关问题
- 1. Subsonic 3 - 将空值传递给存储过程参数
- 2. 将参数传递给存储过程
- 3. 将值传递给存储过程中的参数
- 4. 将具有参数的存储过程传递给c中的函数#
- 5. 将参数传递给带有VIEWS的存储过程?
- 6. 将参数从vbscript传递到oracle存储过程
- 7. 如何将Datetime值作为参数传递给存储过程?
- 8. 将多值参数传递给存储过程
- 9. 将数组传递给存储过程
- 10. 如何将空值传递给使用存储过程的SqlDataSource?
- 11. 将可变数量的参数传递给存储过程
- 12. 将动态数量的参数传递给存储过程
- 13. InvalidCastException - 将空值传递给存储过程
- 14. 将参数传递给存储过程som检索数据
- 15. 以有效的方式传递给存储过程的参数
- 16. 将参数传递给ASP.NET的存储过程WinForm
- 17. 将查询结果传递给存储过程中的参数
- 18. 将参数传递给c中的sql存储过程#
- 19. 将参数传递给MSSQL的错误存储过程从PHP
- 20. VBScript:将参数传递给函数
- 21. 将表值参数传递给SQL CLR存储过程的价值是什么?
- 22. 如何将值的“数组”传递给我的存储过程?
- 23. 如何将参数传递给存储过程
- 24. 将列表结构作为参数传递给存储过程
- 25. 如何将参数传递给EF存储过程?
- 26. C#Winforms - 如何将参数传递给SQL Server存储过程
- 27. 将变量作为参数传递给存储过程
- 28. 使用sql任务将参数传递给存储过程
- 29. 使用PHP PDO将参数传递给SQL Server存储过程
- 30. 如何将表名作为参数传递给存储过程?
烧死了,你可以提供一些示例代码,说明你希望如何传递空值......在你的ADO Command对象上内联字符串构建或输入参数? – 2009-07-21 15:38:56