在一行中调用TDataSet.Locate

时间:2013-05-21 09:00:34

标签: c++ c++builder

在RAD Studio维基中,您可以找到关于using TDataSet.Locate method的文档。

关注 C ++ 代码段来自:

TLocateOptions Opts;
Opts.Clear();
Opts << loPartialKey;
Variant locvalues[2];
locvalues[0] = Variant("Sight Diver");
locvalues[1] = Variant("P");
CustTable->Locate("Company;Contact", VarArrayOf(locvalues, 1), Opts);

我想在一行中调用Locate 一行,就像在Delphi中一样。这样的事情甚至更简单:

CustTable->Locate("Company;Contact", VarArrayOf(new Variant[2]{Variant("Sight Diver"), Variant("P")}, 1), TLocateOptions() << loPartialKey );

编译器说E2121 Function call missing )

有可能吗?

1 个答案:

答案 0 :(得分:2)

根据您的评论,问题是第二个参数,特别是VarArrayOf收到的开放数组。

根据文档,OPENARRAY宏可能会有所帮助。你可以这样打VarArrayOf

VarArrayOf(OPENARRAY(Variant, ("Sight Diver", "P")))

因此对Locate的调用将变为:

CustTable->Locate("Company;Contact", 
                  VarArrayOf(OPENARRAY(Variant, ("Sight Diver", "P"))), 
                  TLocateOptions() << loPartialKey );