连接TFields值

时间:2016-02-19 19:58:48

标签: c++ dbexpress

我在客户数据集中有一个计算字段,名为完整地址,类型为Memo。

我想连接地址字段,如下所示:

    TField* f = customersCDS->FieldByName("full_address");
    if(f)
    {
        f->Value = customersCDS->FieldByName("address_line1")->Value;
        f->Value += "\n";
        f->Value += customersCDS->FieldByName("address_line2")->Value;
        ..
    }

但是,上述方法不起作用。我收到编译器错误:

E2015 Ambiguity between '_fastcall operator Variant::float() const'   and '_fastcall operator Variant::double() const'

最后,我想将计算字段与TMemo绑定,在多行显示完整地址。

1 个答案:

答案 0 :(得分:1)

TField::Value是一个属性。您不能将复合赋值运算符(如+=)与属性一起使用。您必须单独使用+=,例如:

TField* f = customersCDS->FieldByName("full_address");
if (f)
{
    f->Value = customersCDS->FieldByName("address_line1")->Value;
    f->Value = f->Value + String("\n");
    f->Value = f->Value + customersCDS->FieldByName("address_line2")->Value;
    ..
}

在这种情况下,最好使用变量:

TField* f = customersCDS->FieldByName("full_address");
if (f)
{
    String s = customersCDS->FieldByName("address_line1")->Value;
    s += "\n";
    s += customersCDS->FieldByName("address_line2")->Value;
    //...
    f->Value = s;
}