连接 TFields 值

Concatenating TFields values

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

我想连接地址字段,像这样:

    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,多行显示完整地址

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;
}