存储过程createparameter插入空日期

时间:2011-11-10 21:15:27

标签: sql-server-2008 stored-procedures asp-classic

我正在使用CLASSIC ASP和存储过程,存储过程有一个不需要的日期字段。

我想在我的表单上没有输入日期时插入。

我试过“”,Null,NULL,vbNull。

编辑:我在函数调用中将DOB设置为“”:

DOB = ""

if DOB = "" then
    DOB = ????
End if

Set paramId = cmdStoredProc.CreateParameter("@DOB", adDBDate, adParamInput,0,DOB)
cmdStoredProc.Parameters.Append paramId

这与sql server 2008。

感谢任何帮助。

5 个答案:

答案 0 :(得分:0)

如果DOB为空,请尝试添加参数但不带值。这将影响sp参数的默认值。

If DOB = "" Then
    Set paramId = cmdStoredProc.CreateParameter("@DOB", adDBDate, adParamInput)
Else
    Set paramId = cmdStoredProc.CreateParameter("@DOB", adDBDate, adParamInput, 0, DOB)
End If

cmdStoredProc.Parameters.Append paramId

答案 1 :(得分:0)

你试过吗

if DOB = "" then
    DOB = Empty
End if

答案 2 :(得分:0)

确保修剪DOB字段,以便空格字符不会使您绊倒。

If trim(DOB) = "" then ....

答案 3 :(得分:0)

在这种情况下,

Null通常是正确的值。

我猜的问题中缺乏细节。

Ulimately你有一个不可空的DOB表字段在SP的核心分配了这个空值。这反过来导致错误。

答案 4 :(得分:0)

这是因为SQL Server不支持adDBDate数据类型。要解决此问题,请将@DOB参数的数据类型更改为adDBTimeStamp。

Set paramId = cmdStoredProc.CreateParameter("@DOB", adDBTimeStamp, adParamInput, ,DOB)
cmdStoredProc.Parameters.Append paramId

http://support.microsoft.com/kb/214459/en