所以我有一个DBAware组合框,我的问题是这个。
如果我这样做:
ComboBox.ItemIndex := 0;
然后即使在视觉上它显示组合框中的项目被选中,以下仍然返回true。
Query.FieldByName('field').IsNull
基本上我正在尝试做的是如果与组合框相关联的字段对于记录为空,那么我希望组合框默认为第一个索引。但是,当我通过itemindex执行此操作时,它实际上并没有使其编辑记录。
有什么想法吗?请帮忙。
答案 0 :(得分:0)
而不是将默认值设置为ItemIndex
,在数据集中设置它,如
Query.Edit;
Query.FieldByName('field').Value := 'Default Value';
Query.Post;
答案 1 :(得分:0)
更改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;
[...]