c++ - 在一行中调用 TDataSet.Locate

标签 c++ c++builder

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

相关文章:

c++ - 为什么对象的大小为零

c++ - 如何在 boost::transform_iterator 中使用 phoenix 表达式?

c++ - 推导 lambda 返回值和传递给构造函数的参数

c++ - 什么是 `char*` ?

c++ - 删除键不触发 KeyUp 和 KeyDown 事件

c++ - 使用带有 openGL 的 QLineSeries 时无法将 QChartView 正确保存为图像

Delphi编译错误E2064 左侧不能赋值给

delphi - 当涉及 .PAS 单元时减少 C++Builder 构建时间

floating-point - 从 int 转换为 float,可以向上舍入吗?

c++ - 使用 OLE 终止 Excel 应用程序