我的 MySQL 数据库中有这些表:
我想在 DBGrid 中显示员工表和 job.jobName 并允许用户编辑它(可能使用 DBNavigator)。
所以我创建了一个带有 SELECT ... JOIN 查询的 ADOQuery,一个 DataSource 并将一个 DBGrid DataSource 链接到它。
一切正常,但我想要显示 JobNames 的 Job 字段而不是 jobId 字段,允许通过组合框选择它并在 employee.JobId 中设置 id。像这样的东西:
我认为我可以使用 ADOQuery 中 JobId 字段的 LookupKeyFields/LookupResultFields 属性来实现它,但实际上它对我不起作用。
我添加了一个 ADOTable,它只加载作业表中的所有内容并设置 JobId 字段(在 ADOQuery 中)属性: FieldKind = fkLookup, KeyFields = JobId, LookupDataSet = tblJob, LookupKeyFields = IdJob, LookupResultFields = JobName。
但是现在 Job 列只是空的并且没有组合框。
我还在 DBGrid 列中找到了 PickList 属性,但它是 TStrings,所以它只允许显示字符串,不允许单独显示的字符串和值。即使我尝试为字符串字段(姓氏)填充它,它也没有做任何事情。