Я делаю небольшое приложение для работы, и оно включает в себя форму. Когда человек, использующий форму, не помещает значение в тип данных «числовой» (скажем, PIN-код) или даже дату в одном из моих полей типа «дата» (скажем, его годовщину), он возвращает меня с такими ошибками:
Тип ошибки — тип ошибки _Microsoft OLE DB Provider для драйверов ODBC (0x80004005)_ ОШИБКА: неверный синтаксис ввода для числового типа: ""; Ошибка при выполнении запроса
Тип ошибки — тип ошибки _Microsoft OLE DB Provider для драйверов ODBC (0x80004005)_ ОШИБКА: синтаксическая ошибка в или около ")"; Ошибка при выполнении запроса
Таким образом, кажется, что когда человек, использующий форму, ничего не вводит, она возвращает строку «пусто», то есть «». Почему числовой тип и тип данных не могут прочитать это как запись NULL? Эти поля не являются обязательными, поэтому иногда мне нужно, чтобы они были пустыми.
Как я могу сделать это возможным? Это способ продолжать использовать «числовой» и «дата» тип, чтобы, когда пользователь ничего не вводит в эти поля, таблица заполнялась пустым регистром вместо того, чтобы выдавать мне эту ошибку?
Вот мой оператор sql:
trsConn.EXECUTE "INSERT INTO ""TRS"".employeetbl ( "& _
"""firstName"", " & _
"""lastName"" , " & _
"""detContract"", " & _
"sle, " & _
"""posNumber"" "& _
") VALUES (" & _
"'" & Request.Form("empFirst") & "', " & _**
"'" & Replace(Request.Form("empLast"), "'", "`") & "', " & _
"'" & Request.Form("dateContract") & "', " & _
"'" & Request.Form("sle") & "', " & _
"'" & Request.Form("posNum") & "');"
(PosNum и dateContract имеют тип «числовой» и «дата» соответственно.
Большое спасибо за помощь. С нетерпением жду, что вы, гении, скажете.
.. VALUES (.., 'NULL', ..)
, а не.. VALUES (.., NULL, ..)
, как должно быть. - person   schedule 14.08.2012posNum
использует’
(забавная одинарная кавычка, что неверно), а другие используют'
(апостроф, что правильно)? Можете ли вы ввести любое значение дляposNum
? (То есть название является отвлекающим маневром?) - person   schedule 14.08.2012NULL
, назначьтеNULL
. Если вы хотите узнать, является ли столбецNULL
, используйтеIS NULL
; у них естьIsNull()
иCoalesce()
специально для работы со значениямиNULL
- поэтому у них есть специальные функции и оператор для проверки.NULL
‹› ничего другого и ничего больше =NULL
. - person Ken White   schedule 14.08.2012''
, а не'NULL'
, где он должен использовать только буквальноеNULL
. - person mu is too short   schedule 14.08.2012