2

在 RAD Studio wiki 中,您可以找到有关using TDataSet.Locatemethod的文档。

以下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 )

可能吗?

4

1 回答 1

3

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

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

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

所以调用Locate将变为:

CustTable->Locate("Company;Contact", 
                  VarArrayOf(OPENARRAY(Variant, ("Sight Diver", "P"))), 
                  TLocateOptions() << loPartialKey );
于 2013-05-21T09:33:32.447 回答