хранимая процедура createparameter вставка пустой даты - PullRequest
2 голосов
/ 11 ноября 2011

Я использую 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 голосов
/ 06 марта 2015

Это связано с тем, что SQL Server не поддерживает тип данных adDBDate.Чтобы устранить эту проблему, измените тип данных параметра @DOB на adDBTimeStamp.

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

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

0 голосов
/ 11 ноября 2011

Null обычно будет правильным значением в этом сценарии.

Из-за нехватки деталей в вопросе я угадаю.

В конечном счете, у вас есть необнуляемое поле таблицы DOB, которому присваивается это нулевое значение в основе SP. Это, в свою очередь, вызывает ошибку.

0 голосов
/ 11 ноября 2011

Вы пробовали

if DOB = "" then
    DOB = Empty
End if
0 голосов
/ 11 ноября 2011

Убедитесь, что поле DOB обрезано, чтобы пробел не сбивал вас с толку.

If trim(DOB) = "" then ....
0 голосов
/ 11 ноября 2011

Если 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
...