所以我有一个 DBAware 组合框,我的问题就是这个。
如果我做:
ComboBox.ItemIndex := 0;
然后,即使它在视觉上显示组合框中的一个项目被选中,以下仍然返回 true。
Query.FieldByName('field').IsNull
基本上我想要做的是,如果与组合框关联的字段对于记录为空,那么我希望组合框默认为第一个索引。但是,当我通过 itemindex 执行此操作时,它实际上并没有让它编辑记录。
有任何想法吗?请帮忙。
更改 DBComboBox 的 ItemIndex 只会更改 DBComboBox 的输入字段。
它不会更改记录的数据字段值。
如果您真的想更改字段值,请通过 DBComboBox 组件。
所以你可以做到。
[...]
if ComboBox.Field.IsNull then begin
ComboBox.Text:=ComboBox.Items[0];
Query.Edit;
ComboBox.Field.AsString:=ComboBox.Items[0];
Query.Post;
end;
[...]
而不是将默认值ItemIndex
设置为数据集中的设置,例如
Query.Edit;
Query.FieldByName('field').Value := 'Default Value';
Query.Post;