在RAD Studio Wiki中,您可以找到有关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 )

可能吗?

最佳答案

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

根据文档, OPENARRAY 宏可能会有所帮助。您可以这样调用VarArrayOf:

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

因此,对Locate的调用将变为:
CustTable->Locate("Company;Contact",
                  VarArrayOf(OPENARRAY(Variant, ("Sight Diver", "P"))),
                  TLocateOptions() << loPartialKey );

关于c++ - 一行中调用TDataSet.Locate,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16665971/

10-11 00:36