0

所以我有一个 DBAware 组合框,我的问题就是这个。

如果我做:

ComboBox.ItemIndex := 0;

然后,即使它在视觉上显示组合框中的一个项目被选中,以下仍然返回 true。

Query.FieldByName('field').IsNull

基本上我想要做的是,如果与组合框关联的字段对于记录为空,那么我希望组合框默认为第一个索引。但是,当我通过 itemindex 执行此操作时,它实际上并没有让它编辑记录。

有任何想法吗?请帮忙。

4

2 回答 2

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;
 [...]
于 2013-04-05T20:16:50.073 回答
0

而不是将默认值ItemIndex设置为数据集中的设置,例如

Query.Edit;
Query.FieldByName('field').Value := 'Default Value';
Query.Post;
于 2013-04-05T14:10:08.470 回答