在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/