2

RAD Studio wiki では、 methodの使用TDataSet.Locateに関するドキュメントを見つけることができます。

次の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);

Delphi でできるように、この呼び出しをLocate すべて 1 行で行いたいと思います。このようなもの、またはさらに単純なもの:

CustTable->Locate("Company;Contact", VarArrayOf(new Variant[2]{Variant("Sight Diver"), Variant("P")}, 1), TLocateOptions() << loPartialKey );

コンパイラは言うE2121 Function call missing )

出来ますか?

4

1 に答える 1

3

あなたのコメントによると、問題は 2 番目のパラメーター、特に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 に答える