質問

私は、Versantオブジェクトデータベースバックエンドを使用するC#のプロジェクトに取り組んでいると私は、算術演算子を含むクエリを構築しようとしています。それはサポートされていますが、どんな例が欠如していることを文書化状態。

私はこのような何かを構築しようとしている。

SELECT * FROM _orderItemObject WHERE _qtyOrdered - _qtySent > 0

- 「」。私は、オブジェクトにこのステートメントをしようとすると、

インスペクタ私は近いsynthaxのエラーを取得します

誰も声明のようなものを使用した作業VQLの例を持っている?

おかげ

役に立ちましたか?

解決

私は必ずオブジェクトインスペクタがarithmtic式の構文を知っていることはないです。しかし、あなたのコードでは、あなたは完全修飾クラスを参照する必要があります。そして、あなたが使用している構文は、完全に問題ないはずです。

クエリのクエリ=新しいクエリ(セッション、 "com.yourCompany.yourClassここ_qtyOrdered SELECT * FROM - _qtySent> 0");

QueryResultでは結果= query.execute();

私はちょうど私のクラスの一つに、このアウトを試してみましたが、それがうまく働いています。

乾杯、 - ロバート

他のヒント

C#とOQLを使用すると、必ず適切なクラスの範囲を選択するようにする必要があります。これは、クラス名に「エクステント」サフィックスを追加することによって行われます。例えば、私のペットクラスで私は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クエリブラウザを使用することです。 Versantメニューの下の表情は、Visual Studioでのドロップダウンます。

よろしく、

デレク

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top