(1)上面的代码显然是由于数据类型没有指明的缘故才出现 "invalid variant type conversion"这样的提示; (2)下面的代码出现"variant does not reference an automation object" 的提示显然是说fieldbyname()里的参数不能由对象属性来代替,所以你还 是根据Combobox1.ItemIndex值来分别枚举可能的情况。 晚辈献丑了,还望高手赐教的。
procedure TForm1.ComboBox1Change(Sender: TObject);// test ok begin if not VarIsNull(ClientDataSet1.FieldbyName(ComboBox1.Text).OldValue) then Edit1.Text:=ClientDataSet1.FieldbyName(ComboBox1.Text).OldValue; if not VarIsNull(ClientDataSet1.FieldbyName(ComboBox1.Text).NewValue) then Edit2.Text:=ClientDataSet1.FieldbyName(ComboBox1.Text).NewValue; if not VarIsNull(ClientDataSet1.FieldbyName(ComboBox1.Text).Value) then Edit3.Text:=ClientDataSet1.FieldbyName(ComboBox1.Text).Value; end;
procedure TForm1.ComboBox1Change(Sender: TObject);// test ok begin if not VarIsNull(ClientDataSet1.FieldbyName(ComboBox1.Text).OldValue) then Edit1.Text:=ClientDataSet1.FieldbyName(ComboBox1.Text).OldValue; if not VarIsNull(ClientDataSet1.FieldbyName(ComboBox1.Text).NewValue) then Edit2.Text:=ClientDataSet1.FieldbyName(ComboBox1.Text).NewValue; if not VarIsNull(ClientDataSet1.FieldbyName(ComboBox1.Text).Value) then Edit3.Text:=ClientDataSet1.FieldbyName(ComboBox1.Text).Value; end;
"invalid variant type conversion"这样的提示;
(2)下面的代码出现"variant does not reference an automation object"
的提示显然是说fieldbyname()里的参数不能由对象属性来代替,所以你还
是根据Combobox1.ItemIndex值来分别枚举可能的情况。
晚辈献丑了,还望高手赐教的。
begin if not VarIsNull(ClientDataSet1.FieldbyName(ComboBox1.Text).OldValue) then
Edit1.Text:=ClientDataSet1.FieldbyName(ComboBox1.Text).OldValue; if not VarIsNull(ClientDataSet1.FieldbyName(ComboBox1.Text).NewValue) then
Edit2.Text:=ClientDataSet1.FieldbyName(ComboBox1.Text).NewValue; if not VarIsNull(ClientDataSet1.FieldbyName(ComboBox1.Text).Value) then
Edit3.Text:=ClientDataSet1.FieldbyName(ComboBox1.Text).Value;
end;
begin if not VarIsNull(ClientDataSet1.FieldbyName(ComboBox1.Text).OldValue) then
Edit1.Text:=ClientDataSet1.FieldbyName(ComboBox1.Text).OldValue; if not VarIsNull(ClientDataSet1.FieldbyName(ComboBox1.Text).NewValue) then
Edit2.Text:=ClientDataSet1.FieldbyName(ComboBox1.Text).NewValue; if not VarIsNull(ClientDataSet1.FieldbyName(ComboBox1.Text).Value) then
Edit3.Text:=ClientDataSet1.FieldbyName(ComboBox1.Text).Value;
end;
ClientDataSet1.FieldbyName(ComboBox1.Text).OldValue的返回值为空不能转换成字符串的,而clientdataset1.fieldbyname(combobox1.text).oldvalue.asstring ;的写法根本不对。
请问是啥东东?以前我从未见过