У меня есть запрос, используя синтаксис «поле как псевдоним».
Полный запрос:
SELECT specimen.animal_id, specimen.intake_date,
slices.id AS slice_id,
blocks.id AS block_id, blocks.status As block_status,
ribbons.id AS ribbon_id, ribbons.knife_id, ribbons.cutting_order,
ribbons.nr_of_sections, ribbons.status AS ribbon_status
FROM specimen
JOIN slices ON specimen.id = slices.specimen_id
JOIN blocks ON slices.id = blocks.slice_id
JOIN ribbons ON blocks.id = ribbons.block_id
WHERE ribbons.coverslip_id = :csID
Поскольку я объединяю несколько таблиц, в каждой из которых есть поля с одинаковыми именами, например, ‘id’ и ‘status’, синтаксис ‘field AS’ удобен.
Вышеуказанный запрос выполняется в TDataSet. У меня есть форма VCL с TDataSetProvider, TClientDataset и TDatasource, все они подключены для захвата выходных данных запроса в TDataSet.
Различные TDBEdits показывают данные поля после запроса. TDBNavigator подключен к TDataSource.
Проблема возникает, когда я пытаюсь редактировать любые возвращенные данные. При попытке опубликовать изменения, я получаю ошибки базы данных, говорящие о том, что «поле ribbon_id не существует».
Который, кажется, указывает на то, что существует путаница между реальным именем поля. и имя поля «КАК».
Вопрос в том, как исправить такую ошибку при использовании синтаксиса «поле как»?
Задача ещё не решена.
Других решений пока нет …