首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有算术运算符的Versant OQL语句

带有算术运算符的Versant OQL语句
EN

Stack Overflow用户
提问于 2010-06-09 04:17:21
回答 2查看 790关注 0票数 0

我正在开发一个使用Versant对象数据库后端的c#项目,并且我正在尝试构建一个包含算术运算符的查询。文档声明它是受支持的,但没有任何示例。

我正在尝试构建这样的东西:

代码语言:javascript
复制
SELECT * FROM _orderItemObject WHERE _qtyOrdered - _qtySent > 0

如果我在Object Inspector中尝试这个语句,我在'-‘附近得到一个synthax错误。

有没有使用这种语句的VQL的例子?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-09 06:41:17

我不确定Object Inspector是否知道算术表达式的语法。但是,在您的代码中,您应该引用完全限定类。那么你使用的语法应该是完全正确的。

查询查询=新查询( session,"select * from com.yourCompany.yourClass where _qtyOrdered - _qtySent >0 ");

QueryResult结果= query.execute();

我刚刚在我的一个类上试用了它,它工作得很好。

干杯,-Robert

票数 0
EN

Stack Overflow用户

发布于 2010-06-09 12:19:55

对于C#和OQL,您必须确保选择正确的类范围。这是通过在类名中添加“扩展”后缀来实现的。例如,在我的Pet类中,我将在OQL字符串中使用"PetExtent“标识所有宠物。

通过在下面的代码中定义一个本地名字对象p,可以在谓词中访问类成员。任何算术表达式都将由查询引擎进行计算。

代码语言:javascript
复制
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查询浏览器。查看Visual Studio中的Versant菜单下拉菜单。

诚挚的问候,

德里克

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3000953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档