Как я могу реализовать «записываемые вычисляемые» поля в TDataSet?

Мне нужно добавить в TDataSet дополнительные поля, которые не существуют в базовой базе данных, но могут быть получены из существующих полей. Я легко могу сделать это с помощью caclulated полей, и это отлично работает.

Теперь я хочу отредактировать эти поля и записать измененные данные обратно. Я могу отменить вычисление, чтобы записать данные обратно в существующие поля, но элементы управления БД просто не позволяют мне редактировать вычисляемые поля.

Есть ли какой-либо подход, который позволяет мне это сделать?

Обновление: но элементы управления БД просто не позволяют мне редактировать вычисляемые поля.

Есть ли какой-нибудь подход, который позволяет мне это сделать?

Обновление: но элементы управления БД просто не позволяют мне редактировать вычисляемые поля.

Есть ли какой-нибудь подход, который позволяет мне это сделать?

Обновление: Хорошо, еще немного о предыстории.

В наборе данных есть поле blob, которое является представлением в ТБ. Некоторые байты определены как содержащие информацию, которая может быть представлена ​​удобным способом с помощью существующих полей редактирования БД. Однако не все байты известны, поэтому представление TBytes должно быть сохранено для обработки другим приложением, которое об этом знает. Это приложение также изменяет существующие и вставляет новые записи.

ТБ разных записей в наборе данных часто сопоставляются с представлениями разных полей, хотя установка фильтра или диапазона в наборе данных гарантирует, что они будут иметь одинаковое сопоставление.

Как Я сказал, что извлечение известных байтов и преобразование их в строки, даты, числа и так далее через вычисляемые поля не проблема. Также возможно преобразование этих значений в ТБайт. Проблема заключается в том, чтобы сделать эти дополнительные поля доступными для редактирования, сохранив при этом навигацию по набору данных.

Если это поможет: у нас есть классы, которые выполняют двунаправленное сопоставление, отображая поля как опубликованные свойства.

9
задан Uwe Raabe 18 March 2011 в 03:32
поделиться