Как показать данные, связанные с идентификатором, вместо идентификатора?

#database #delphi #dbgrid

Вопрос:

Таким образом, у меня есть база данных (доступ) с 4 связанными таблицами, как показано на рисунке:

изображение

В Delphi у меня есть a TDBGrid , который показывает данные из таблицы «результаты» (использование TADOTable ), как показано здесь:

изображение

Как вы можете видеть, в поле для идентификатора теста отображаются номера (идентификатор теста). Что я хочу, так это показать имя теста вместо этого номера. Или я могу добавить поле (в Delphi), в котором отображается имя теста, связанное с идентификатором (возможно, вычисляемое поле)?

Комментарии:

1. Это хорошее введение в доступ к данным базы данных из приложения Delphi: thoughtco.com/beginners-guide-to-delphi-1057714

2. Используйте a TADOQuery вместо a TADOTable , затем вы можете использовать необходимые поля из обеих таблиц и связать их вместе, например, с помощью(n) (внутреннего) соединения

3. спасибо всем вам за ваши ответы. Я новичок в delphi и программировании в целом. Я просто хотел, чтобы простой способ отображал данные в поле, которое связано с другим в другой таблице. Я пробовал использовать совместный запрос, но я понятия не имею, как сделать результат запроса select редактируемым. С уважением

Ответ №1:

Вам нужно поле поиска, определенное в компоненте TADOTable, которое отвечает за таблицу «Результаты». Определение поля поиска

Имейте в виду, что большие наборы данных могут привести к низкой производительности. Правильный способ-использовать выборки с объединениями в TADOQuery.

Комментарии:

1. Вот тебе и ответ. Я проведу свое исследование в поле поиска, как вы предложили. По поводу использования select с присоединенным quey я наткнулся на проблему: редактирование или удаление данных из результата запроса, как я понимаю, опубликованный результат только для чтения нет? если есть способ отредактировать данные, возвращаемые с помощью запроса select, пожалуйста, просветите меня. Спасибо и с наилучшими пожеланиями

2. Редактирование результатов выборок с объединениями не очень распространено, это возможно, но я не рекомендую этого делать. Если вам нужно отредактировать таблицу результатов — самый простой вариант-это поля поиска.

3. Спасибо. поля поиска-это то, что мне было нужно. Спасибо за помощь.

Ответ №2:

TDBGrid есть OnDrawColumnCell событие. Вы можете нарисовать любую ячейку по своему усмотрению, чтобы она выглядела так, как вы хотите.

Или вы можете просто получить доступ к TADOTable TField объекту » s » для ID_Test поля и назначить обработчику его OnGetText события, чтобы вернуть TField.DisplayText значение поля таблицы Nom_Test .

Комментарии:

1. Или вы могли бы изучить SQL и использовать соединение.

2. Спасибо вам за ваш ответ . Я попробую это сделать. С уважением