SETNULL

Обсуждение MAV Direct ODBC

Модератор: Andrew™

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion и MAV который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Аватара пользователя
samo_let
Посетитель
Сообщения: 42
Зарегистрирован: 26 Январь 2009, 16:24

SETNULL

Сообщение samo_let »

Добрый день!
Суть проблемы:
Имеем таблицу MyTable, содержащую поле MyData типа DateTime
В словаре поле описано типовым образом - строка, на которую через OVER наложена группа из полей типа DATE и TIME

В программе :
CLEAR(MyTable)
Mytable.Field1 = ..
...
Mytable.Fieldn = ..

(Полю MyData не присваиваем значение. В таблице на сервере для поля разрешен NULL)

Пытаемся добавить запись:
IF MAVINSERT(MyTable)
MAVSHOWERROR()
END
Получаем сообщение об ошибке - нельзя добавить значение 0 в поле типа DateTime.

Вопрос:
Имеется ли какая-либо возможность не делать перед insert / update проверку на ноль и принудительное присвоение SETNULL таким полям?
(вроде User Option в словаре или вроде того...)
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Re: SETNULL

Сообщение Admin »

Если я правильно понимаю все должно работать.
Пробуй MAVCLEAR(MyTable)
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Re: SETNULL

Сообщение Andrew™ »

samo_let писал(а):Имеется ли какая-либо возможность не делать перед insert / update проверку на ноль и принудительное присвоение SETNULL таким полям?
(вроде User Option в словаре или вроде того...)
забудте про SENULL, это функция нужна только при работе FILE,DRIVER, в моей библиотеке при первом доступе к структурам их DCT делается проверка соответствия типов данных в DCT и в БД, а также - разрешён NULL или нет для поля

так вот, если для поля разрешён в БД NULL и в INSERT, UPDATE есть такие поля нулевые, то в БД идёт NULL

другое дело, если Вы хотите вместо NULL записать НОЛЬ, а в БД для поля NULL разрешён, для этого в DCT для поля в Field User Option прописываем

NOTNULL=TRUE
Ответить