0

Versant Object Databaseバックエンドを使用するac#プロジェクトに取り組んでおり、算術演算子を含むクエリを作成しようとしています。ドキュメントには、サポートされていると記載されていますが、例がありません。

私はこのようなものを構築しようとしています:

SELECT * FROM _orderItemObject WHERE _qtyOrdered - _qtySent > 0

オブジェクトインスペクターでこのステートメントを試してみると、「-」の近くにシンタックスエラーが発生します。

誰かがその種のステートメントで動作するVQLの例を持っていますか?

ありがとう

4

2 に答える 2

0

オブジェクト インスペクタが算術式の構文を認識できるかどうかはわかりません。ただし、コードでは、完全修飾クラスを参照する必要があります。次に、使用している構文は完全に問題ないはずです。

Query query = new Query( session, "select * from com.yourCompany.yourClass where _qtyOrdered - _qtySent > 0 ");

QueryResult 結果 = query.execute();

クラスの1つでこれを試してみたところ、うまくいきました。

乾杯 - ロバート

于 2010-06-08T22:41:17.037 に答える
0

C# と OQL では、適切なクラス エクステントを選択していることを確認する必要があります。これは、クラス名に「エクステント」サフィックスを追加することによって行われます。たとえば、私の Pet クラスでは、OQL 文字列の「PetExtent」ですべてのペットを識別します。

クラス メンバーは、次のコードでローカル モニカ p を定義することにより、述語でアクセスされます。算術式はすべて、クエリ エンジンによって評価されます。

string query="SELECT * FROM PetExtent AS p WHERE p.Name = \"Ferris\" AND (p.age + 5) > 4";
IQueryResult result = scope.GetOqlQuery(query).Execute();

foreach (object o in result)
   Out(o.ToString());

Versant の C# バインディングで OQL をテストする最良の方法は、Visual Studio に統合された OQL Query Browser を使用することです。Visual Studio の Versant メニュー ドロップダウンを見てください。

よろしくお願いします、

デレク

于 2010-06-09T04:19:54.907 に答える