Você constrói uma consulta pela criação de um objeto QueryDef chamando o método
BuildQuery do objeto Session.
Uma Consulta consiste em uma lista de campos para um determinado tipo de registro para o qual você
deseja recuperar valores. Os registros são retornados em um objeto ResultSet. A consulta retorna os campos
solicitados para todos os registros de um tipo determinado. Você pode, então, iterar sobre os conjuntos de
resultados e processar os dados.
A criação de uma consulta pode envolver a criação de pelo menos três
objetos separados: um objeto QueryDef, um objeto QueryFilterNode e um objeto ResultSet. Consultas mais
complexas podem também envolver a criação de objetos QueryFilterNode adicionais.
Para criar uma
consulta simples, siga estas etapas:
- Construa uma consulta utilizando o objeto QueryDef para especificar
os dados a recuperar. O objeto QueryDef contém a definição de uma consulta para o banco de dados do Rational
ClearQuest. Depois de criar um QueryDef, você pode usá-lo para obter informações de banco de dados. Para
criar esse objeto, use o método BuildQuery do objeto Session.
- Use os métodos do QueryDef para incluir critérios de procura e especificar os campos de cada registro
que deseja que a consulta retorne.
- Crie um objeto ResultSet para conter os dados retornados. Para criar esse objeto, chame o método
BuildResultSet do objeto Session.Em sua criação o objeto ResultSet cria um conjunto de estruturas de
dados interno usando as informações no objeto QueryDef como modelo. Quando a consulta está em execução, o
objeto ResultSet preenche essas estruturas de dados com dados da consulta.
- Execute a consulta chamando o método Execute ou ExecuteAndCountRecords do objeto
ResultSet. Chamar um desses métodos preenche um conjunto de resultados com os dados que são capturados do
banco de dados.
- Acesse os dados pela iteração do objeto ResultSet usando outros métodos do objeto ResultSet para obter
informações sobre os campos de um registro.
Em vez de retornar o registro inteiro, uma consulta retorna somente os campos do registro que são
especificados por você ao chamar o método BuildField do objeto QueryDef. O método Execute não
retorna os resultados em uma ordem particular. Portanto, o objeto ResultSet usa um sistema baseado em cursor
para permitir que o código se mova pelos registros, um por um.