在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 )
。
有可能吗?
答案 0 :(得分:2)
根据您的评论,问题是第二个参数,特别是VarArrayOf
收到的开放数组。
根据文档,OPENARRAY
宏可能会有所帮助。你可以这样打VarArrayOf
:
VarArrayOf(OPENARRAY(Variant, ("Sight Diver", "P")))
因此对Locate
的调用将变为:
CustTable->Locate("Company;Contact",
VarArrayOf(OPENARRAY(Variant, ("Sight Diver", "P"))),
TLocateOptions() << loPartialKey );