我有一张带有几个外键的表,如下所示:
CREATE TABLE project.gl(
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
glaccount_id INT(11) UNSIGNED NOT NULL,
project_id INT(11) UNSIGNED NOT NULL,
booking_id INT(11) UNSIGNED NOT NULL,
cc_id INT(11) UNSIGNED DEFAULT NULL,
cu_id INT(11) UNSIGNED DEFAULT NULL,
PRIMARY KEY (id),
INDEX FK_gl_booking_id (booking_id),
INDEX FK_gl_cc_id (cc_id),
INDEX FK_gl_cu_id (cu_id),
INDEX FK_gl_glaccount_id (glaccount_id),
INDEX FK_gl_project_id (project_id),
CONSTRAINT FK_gl_booking_id FOREIGN KEY (booking_id)
REFERENCES project.booking (id) ON DELETE RESTRICT ON UPDATE RESTRICT,
CONSTRAINT ......
我想在DBGrid中显示它,但我当然不希望显示所有*_id
,而是显示id指向的数据。
我不想使用查询来解析id,(现在)我想使用普通的TTable
。
您建议哪种DBGrid变体可以使用外键单元格中的DBLookupComboBox等内容来查找外键?
答案 0 :(得分:6)
只需创建lookup field即可。然后,TDBGrid会自动显示该列的组合框,您可以从中选择可用的值。然后,关键字段会自动更新。
答案 1 :(得分:2)
另请参阅Ehlib中的TDBGridEh,它比ExpressQuantumGrid更“轻”但功能非常强大。它是一种商业产品。
答案 2 :(得分:1)
我确实使用了DeveloperExpress的ExpressQuantumGrid来执行此操作以及许多其他任务。它非常强大和成熟,可以有Lookup-Columns。但它是商业性的,它是一个非常“沉重”的组成部分。