Domanda

Sto lavorando su un progetto c # che utilizzano un back-end oggetto di database Versant e sto cercando di costruire una query che contiene un operatore aritmetico. Gli stati di documentazione che è supportato, ma la mancanza alcun esempio.

Sto cercando di costruire qualcosa di simile:

SELECT * FROM _orderItemObject WHERE _qtyOrdered - _qtySent > 0

Se provo questa dichiarazione in oggetto ispettore ottengo un errore synthax nei pressi del '-'.

Qualcuno ha un esempio di un VQL lavorare con questo tipo di affermazione?

Grazie

È stato utile?

Soluzione

Non sono sicuro che l'oggetto Inspector conoscere la sintassi per l'espressione arithmtic. Tuttavia, nel codice si dovrebbe essere riferisce alla classe completo. Poi la sintassi si utilizza dovrebbe essere perfettamente bene.

query di query = new Query (sessione, "Select * from com.yourCompany.yourClass dove _qtyOrdered - _qtySent> 0");

Risultati QueryResult = query.execute ();

Ho appena provato questo su una delle mie classi e ha funzionato bene.

Saluti, -Robert

Altri suggerimenti

Con C # e OQL bisogna assicurarsi di selezionare l'estensione di classe adeguata. Questo viene fatto aggiungendo il suffisso "Estensione" per il nome della classe. Per esempio, nella mia classe Pet avrei individuare tutti gli animali domestici con "PetExtent" nella stringa OQL.

I membri della classe si accede nel predicato definendo un moniker locale, p nel seguente codice. Eventuali espressioni aritmetiche saranno valutate dal motore di query.

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());

Il modo migliore per testare OQL con di Versant C # vincolante è quello di utilizzare il browser OQL Query integrato in Visual Studio. Guardate sotto il menu a discesa Versant in Visual Studio.

Con i migliori saluti,

Derek

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top