在 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函数调用丢失)
。
可能吗?
最佳答案
根据您的评论,问题出在第二个参数,特别是 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/