Versan OQL заявление с арифметическим оператором
-
25-09-2019 - |
Вопрос
Я работаю над проектом AC #, который использует заднюю часть базы данных составляющих объектов, и я пытаюсь создать запрос, который содержит арифметический оператор. Документация заявляет, что она поддерживается, но не хватает какого-либо примера.
Я пытаюсь построить что-то вроде этого:
SELECT * FROM _orderItemObject WHERE _qtyOrdered - _qtySent > 0
Если я попробую это утверждение в инспекторе объектов, я получаю ошибку синтаксики вблизи «-».
У кого-нибудь есть пример рабочего VQL с таким выписком?
Спасибо
Решение
Я не уверен, что инспектор объекта будет знать синтаксис для арифмитского выражения. Однако в вашем коде вы должны ссылаться на полностью квалифицированный класс. Затем синтаксис, который вы используете, должен быть идеально в порядке.
Query Query = Новый запрос (сеанс, выберите * от com.yourCompany.yourclass, где _qtyorked - _qtysent> 0 ");
Результат QueryResult = Query.execute ();
Я просто попробовал это на одном из моих классов, и это работало нормально.
Ура, -Роберт
Другие советы
С C # и OQL вы должны убедиться, что вы выбираете правильную степень класса. Это сделано путем добавления суффикса «масштаба» к названию класса. Например, в моем классе домашних животных я бы идентифицировал всех домашних животных с «Petextent» в строке OQL.
Участники классов доступны в предикате, определяя локальный моникер, 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());
Лучший способ проверить OQL с помощью связывания C # Versan C # - использовать браузер OQL Query, встроенного в Visual Studio. Посмотрите под падением меню Versan в Visual Studio.
С уважением,
Дерек