TdxDBGrid无法关联新增查询字段:FieldName列表缺失新增字段
解决TdxDBGrid无法识别查询新增字段的问题
1. 修正SQL查询语句的语法错误
你的SQL语句存在语法问题:SELECT * 和后续单独列出的字段不能同时使用,这种写法会导致查询返回的字段结构混乱,数据集无法正确识别新增的别名字段(DStreet、DStreetNum、DCity)。
修正后的SQL应改为只显式列出需要的字段,示例如下:
SELECT Workers.id, Workers.DecodedStreet AS Street, Workers.DecodedHouseNumber AS StreetNum, Workers.DecodedCity AS City, ISNULL(Map.DecodedStreet,'') AS DStreet, ISNULL(Map.DecodedStreetNum,'') AS DStreetNum, ISNULL(Map.DecodedCity,'') AS DCity from Workers left outer join Map on Workers.id = Map.WId
注:如果需要Workers表的其他字段,要逐个添加到SELECT列表中,不要用
SELECT *。
2. 更新数据集的字段定义
即使修正了SQL,旧的字段缓存还会保留在查询组件中,需要手动刷新:
- 找到
qPassengers查询组件,右键点击它,选择Fields Editor; - 在Fields Editor窗口中,右键选择Add all fields,此时新增的
DStreet、DStreetNum、DCity字段会被添加进来; - 关闭Fields Editor,重新编译运行项目。
3. 关联网格列与字段
现在回到TdxDBGrid的列属性,就能在FieldName下拉列表中找到新增的三个字段,直接选择对应项即可完成关联。
内容的提问来源于stack exchange,提问作者user3346475
相关产品推荐
相关产品推荐

