Работа с вычисляемыми полями

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

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion и MAV который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Аватара пользователя
StillZero
Ветеран
Сообщения: 454
Зарегистрирован: 06 Июль 2005, 2:17
Откуда: Хабаровск
Контактная информация:

Работа с вычисляемыми полями

Сообщение StillZero »

MS SQL 2000
В таблице есть вычисляемое поле типа DATETIME.
В словаре оно описано по стд схеме с OVER-группой.
Вычисляемое поле не должно попадать в запрос INSERT, UPDATE.
Ставлю в словаре этим полям свойство Read Only.
Поле все равно попадает в запрос.

Получаем след ошибки:
при UPDATE
ERROR: [Microsoft][ODBC SQL Server Driver][SQL Server]Column 'TransactionDate' cannot be modified because it is a computed column. [42000]
при INSERT
ERROR: [Microsoft][Диспетчер драйверов ODBC] Ошибка последовательности функций [HY010]
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Re: Работа с вычисляемыми полями

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

StillZero писал(а):MS SQL 2000
В таблице есть вычисляемое поле типа DATETIME.
В словаре оно описано по стд схеме с OVER-группой.
Вычисляемое поле не должно попадать в запрос INSERT, UPDATE.
Ставлю в словаре этим полям свойство Read Only.
Поле все равно попадает в запрос.

Получаем след ошибки:
при UPDATE
ERROR: [Microsoft][ODBC SQL Server Driver][SQL Server]Column 'TransactionDate' cannot be modified because it is a computed column. [42000]
при INSERT
ERROR: [Microsoft][Диспетчер драйверов ODBC] Ошибка последовательности функций [HY010]
по поводу INSERT - туда попадать не должно, в UPDATE - да попадает, сделай View по всем полям таблицы, а в описании таблицы выкинь это поле - все просмотры по View, все UPDATE по DCT Table
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Сообщение Admin »

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

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

Admin писал(а):Это конечно выход.
НО! Почему бы ReanOnly поля не скипать из запроса?
есть по крайней мере два типа вычисляемых полей, одни инициализируются на INSERT и можно редактировать на UPDATE, и есть как у тебя в обоих вариантах вычисляются - инициализируются, перевести ReadOnly под твою задачу - значит подставить под удар тех, кто юзает ReadOnly в том варианте, что сейчас, тут надо подумать и ввести новую пропертю

ЗЫ
уведомление наконец то пришло ;)
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

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

Admin писал(а):Это конечно выход.
НО! Почему бы ReanOnly поля не скипать из запроса?
реализовал такую возможность

в DCT у такого поля выставляешь Field User Option

Код: Выделить всё

CALC=TRUE
и данное поле никогда не будет попадать в INSERT и UPDATE конструкции, так же остаются те же правила как и для Read Only атрибута, который для этой опции не обязательно взводить
Ответить