Objeto | Início Anterior Próximo

Objeto

Um componente do tipo Objeto representa um conjunto de atributos que ficam armazenados na sessãodo usuário possuindo como prefixo um identificador comum, sendo esse identificador comum o identificador definido para o Objeto. Os nomes e os valores dos atributos que fazem parte de um Objeto são o resultado da execução de uma consulta enviada a um banco de dados.
Os nomes das colunas retornados pela pesquisa indicarão quais serão os nomes dos atributos desse Objeto e para cada linha do resultado será definido um índice formando uma estrutura semelhante a uma matriz oferecendo assim uma maneira fácil e intuitiva para acessar um determinado valor.
A depender do banco de dados e do driver usado para acessá-lo o Objeto gerado também possuirá o método size() que informa a quantidade de linhas retornada pela pesquisa enviada ao banco de dados. Um outro método disponibilizado é o columnNames() que irá retornar os nomes das colunas retornados pela pesquisa separados por vírgula.
A sintaxe usada para acessar um determinado valor de um atributo armazenado num elemento Objeto do WebIntegrator é a seguinte:
<identificador-do-objeto>[<índice-da-linha>].<nome-ou-índice-do-atributo>
A ilustração a seguir exibe uma estrutura semelhante a uma matriz representando um Objeto cujo identificador foi definido como tmp.meuObj. Para acessar o valor do atributo atrib2 que está na segunda linha basta refenciar desta maneira |tmp.meuObj[2].atrib2.

| atrib1

atrib2
...
atribN
1
tmp.meuObj[1].atrib1
tmp.meuObj[1].atrib2
...
tmp.meuObj[1].atribN
2
tmp.meuObj[2].atrib1
tmp.meuObj[2].atrib2
...
tmp.meuObj[2].atribN
...
...
...
...
...
tmp.meuObj.size()
tmp.meuObj[size()].atrib1
tmp.meuObj[size()].atrib2
...
tmp.meuObj[size()].atribN
Para acessar os valores da primeira linha de um Objeto há uma sintaxe reduzida onde o valor do índice da linha pode ser omitido, então referenciando tmp.meuObj.atrib1 seria retornado o valor do atributo atrib1 que está armazenado na primeira linha do Objeto tmp.meuObj.
O campo Banco de Dados indica o identificador de um dos servidores de bancos de dados definidos para o projeto que será usado para executar o comando.
O campo Condição contém a expressão condicional a ser testada para saber se o componente deverá ser processado. Para saber maiores detalhes sobre as possíveis construções de condições clique aqui.
O campo Descrição serve para que o desenvolvedor da aplicação escreva um breve comentário sobre a ação a ser executada pelo componente em questão.
O campo Filtrar define quais os caracteres que deverão ser filtrados do conteúdo das variáveis de sessão do WebIntegrator que estão sendo referenciadas no campo SQL antes da execução do comando. O objetivo é impedir que certos caracteres sejam passados para o comando a ser executada pelo banco de dados evitando que assim que o resultado do comando não seja intencionalmente alterado.
Como exemplo suponha que haja a instrução SELECT * FROM tabCadastros WHERE nome LIKE |tmp.nome|% AND publico = 1 e o usuário da aplicação ao preencher o formulário coloque no campo correspondente à variável tmp.nome um valor como % OR nome = . Se o campo Filtrar não estiver definido com os caracteres % e o WebIntegrator irá processar a seguinte instrução SELECT * FROM cadastros WHERE nome LIKE % OR nome = % AND publico = 1 retornando como resultado todos as linhas da tabela.
O campo Objeto define o nome do objeto que será inserido na sessão do usuário após a execução do componente, a depender do componente o objeto poderá possuir uma série de atributos e métodos. Por exemplo, o objeto definido em componentes do tipo Objeto possuem os métodos size() e columnNames() além de uma série de atributos representados pelos nomes das colunas vindas do resultado da consulta ao banco de dados.
No caso de um objeto declarado na definição de um web service esse objeto irá conter os parâmetros de resposta que serão retornados após a execução da chamada ao web service. Para saber quais os possíveis atributos e métodos de um objeto leia a documentação específica do componente.
O campo Qtde. Colunas ID indica quantas colunas serão usadas para ajudar a formar o identicador de uma linha caso o resultado retorne mais de uma linha. Se esse campo for deixado em branco o desenvolvedor ainda poderá referenciar uma determinada linha através de seu índice.
Geralmente quando um objeto armazena o resultado de uma consulta que contenha mais de uma linha os valores desses resultados são acessados através do índice da linha, configurando esse campo haverá uma nova possibilidade de acessar uma determinada linha através dos valores das colunas que foram especificadas. Como exemplo suponha que haja uma tabela com as seguintes informações:

mensagens

codigo
mensagem
10
Mensagem #10
20
Mensagem #20
30
Mensagem #30
40
Mensagem #40
Se um objeto identificado por tmp.obj executar uma instrução que retorne como resultado todos os dados da tabela acima e o campo Qtde. Colunas ID estivesse definido com 1, ao referenciar tmp.obj.mensagem.10 se recuperaria o valor da coluna mensagem cujo valor da coluna codigo seja 10.
O campo SQL contém o comando que será enviado para ser processado pelo banco de dados. Caso o comando seja composto por mais de uma instrução SQL separe-as por ponto-e-vírgula.
No componente Upload de Banco de Dados o valor da coluna relativo ao conteúdo deverá ser referenciado por um sinal de interrogação, exemplo: INSERT INTO MinhaTabela (arquivo, conteudo) VALUES (|tmp.arquivo|, ?).
A estrutura do comando a ser executado é dependente do banco de dados, podendo ser feitas chamadas a stored procedures, rotinas M (através do MJava), métodos de objetos do CachéFactory, execução de instruções SQL, etc. Para saber maiores detalhes como fazer essas chamadas clique aqui.