Pergunta

Eu estou trabalhando em um projeto c# que usar um Versant Objeto de Banco de dados back-end e eu estou tentando criar uma consulta que contém um operador aritmético.A documentação declara que ele é suportado, mas falta qualquer exemplo.

Eu estou tentando construir algo como isto:

SELECT * FROM _orderItemObject WHERE _qtyOrdered - _qtySent > 0

Se eu tentar essa declaração no Object Inspector, eu recebo um synthax erro de perto a '-'.

Alguém tem um exemplo de um trabalho VQL com esse tipo de declaração?

Obrigado

Foi útil?

Solução

Não tenho certeza de que o inspetor de objeto conheça a sintaxe para a expressão aritmtic. No entanto, no seu código, você deve se referir à classe totalmente qualificada. Em seguida, a sintaxe que você está usando deve ser perfeitamente boa.

Query Query = New Query (Sessão, "Selecione * de com.yourcompany.yourclass where _qtyordered - _qtySent> 0");

QueryResult resultado = query.execute ();

Eu apenas experimentei isso em uma das minhas aulas e funcionou bem.

Saúde, -Robert

Outras dicas

Com C# e OQL você tem que certificar-se de que você selecione a classe correta medida.Isso é feito adicionando-se a "Extensão" sufixo para o nome da classe.Por exemplo, na minha classe Pet gostaria de identificar todos os animais com "PetExtent" no OQL de seqüência de caracteres.

Os membros da classe são acessados no predicado pela definição de um local moniker, p no código abaixo.Quaisquer expressões aritméticas será avaliada pelo mecanismo de consulta.

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

A melhor maneira para testar OQL com Versant C# ligação é usar a OQL Query Browser integrado ao Visual Studio.Olhar sob a Versant Menu drop-down no Visual Studio.

Melhores Cumprimentos,

Derek

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top