在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