Neutral
User
 Junior Boarder
| Posts: 19 |   | Karma: 0 |
|
Проблема при вставки записи -с вычисляемыми полями
|
|
Posted: 2008/03/12 23:45 |
|
|
|
|
Здравствуйте!
Подскажите пожалуйста в чем проблема.
В ADQuery задан следующий запрос (SQL):
SELECT D.[ID], D.[DESCRIPTION], D.[LENGHT], D.[WIDTH], D.[HEIGHT], D.[WEIGHT], (D.[LENGHT]*D.[WIDTH]*D.[HEIGHT]) AS VOLUME FROM [dbo].[dirTYPE_PLACE_STORAGE] D
Поле "VOLUME" является вычисляемым полем, соответственно оно только для чтения. Что и говорит вкладка "Structure" компонента ADQuery.
VOLUME | DOUBLE(53,0) | Searchable; ReadOnly | VOLUME
В компоненте ADUpdate (он связан с ADQuery.UpdateObject) заданы следующие запросы:
-------------- "INSERT": -------------- INSERT INTO DBO.DIRTYPE_PLACE_STORAGE ([ID], [DESCRIPTION], [LENGHT], [WIDTH], [HEIGHT], [WEIGHT]) VALUES (:NEW_ID, :NEW_DESCRIPTION, :NEW_LENGHT, :NEW_WIDTH, :NEW_HEIGHT, :NEW_WEIGHT);
SELECT [DESCRIPTION], [LENGHT], [WIDTH], [HEIGHT], [WEIGHT], ([LENGHT]*[WIDTH]*[HEIGHT]) AS VOLUME FROM DBO.DIRTYPE_PLACE_STORAGE WHERE [ID] = :NEW_ID
-------------- "MODIFY": -------------- UPDATE DBO.DIRTYPE_PLACE_STORAGE SET [ID] = :NEW_ID, [DESCRIPTION] = :NEW_DESCRIPTION, [LENGHT] = :NEW_LENGHT, [WIDTH] = :NEW_WIDTH, [HEIGHT] = :NEW_HEIGHT, [WEIGHT] = :NEW_WEIGHT WHERE [ID] = :OLD_ID;
SELECT [DESCRIPTION], [LENGHT], [WIDTH], [HEIGHT], [WEIGHT], ([LENGHT]*[WIDTH]*[HEIGHT]) AS VOLUME FROM DBO.DIRTYPE_PLACE_STORAGE WHERE [ID] = :NEW_ID
-------------- "DELETE": -------------- DELETE FROM DBO.DIRTYPE_PLACE_STORAGE WHERE [ID] = :OLD_ID
--------------------- "FETCHROW": --------------------- SELECT [ID], [DESCRIPTION], [LENGHT], [WIDTH], [HEIGHT], [WEIGHT], ([LENGHT]*[WIDTH]*[HEIGHT]) AS VOLUME FROM DBO.DIRTYPE_PLACE_STORAGE WHERE [ID] = :OLD_ID
================= При добавлении записи в DataGrid выдается ошибка:
class EADException with message '[AnyDAC][DatS]-14. Column [VOLUME] value must be not null' ================= Подскажите как быть, в таком случае?
Post edited by: Neutral, at: 2008/03/13 04:04
|
|