与大量查找字段一起使用的最佳数据库网格

时间:2011-12-06 12:53:32

标签: delphi delphi-xe2 dbgrid

我有一张带有几个外键的表,如下所示:

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等内容来查找外键?

3 个答案:

答案 0 :(得分:6)

只需创建lookup field即可。然后,TDBGrid会自动显示该列的组合框,您可以从中选择可用的值。然后,关键字段会自动更新。

答案 1 :(得分:2)

另请参阅Ehlib中的TDBGridEh,它比ExpressQuantumGrid更“轻”但功能非常强大。它是一种商业产品。

答案 2 :(得分:1)

我确实使用了DeveloperExpress的ExpressQuantumGrid来执行此操作以及许多其他任务。它非常强大和成熟,可以有Lookup-Columns。但它是商业性的,它是一个非常“沉重”的组成部分。