Para executar consultas à base de dados utilizando a linguagem
Transact SQL, basta aceder ao ecrã
SQL Studio e selecionar o
Tipo de comando Transact SQL.
Com esta configuração, poderemos executar livremente comandos de
Select na base de dados.
Exemplo:
O comando indicado acima retornará todos os registos da tabela de
Clientes da aplicação.
tips_and_updatesDicas
Se não souber o nome da tabela de uma entidade na base de dados, poderá ter acesso a esta informação consultando o Dicionário de Dados. Carregue
aqui para consultar mais informações relacionadas com esta funcionalidade.
A vantagem de utilizar esta forma de consulta está relacionada com a sua facilidade de implementação. Basta dominar as instruções da linguagem
Transact SQL e executar o comando desejado direto na base de dados.
No entanto, muitas entidades da aplicação possuem os chamados
campos virtuais. Os valores dos campos virtuais não ficam gravados fisicamente na base de dados e por este motivo, não conseguimos consultar o valor de um campo virtual ou efetuar filtros com valores destes campos com a linguagem
Transact SQL.
. Os campos virtuais podem no entanto ser utilizados na consulta de dados via linguagem
Visual Basic .NET.
Para executar consultas à base de dados utilizando a linguagem
Visual Basic .NET, basta aceder ao ecrã
SQL Studio e selecionar o
Tipo de comando Visual Basic .NET.
Com esta configuração, será necessário criar um código VB.NET para efectuar a consulta desejada. Para isso, podemos utilizar as funções da classe SDK
Query.
Exemplo:
return SDK.Query.getEntityData(of CLVO)
O comando indicado acima retornará todos os registos da tabela de Clientes da aplicação. Esta instrução utiliza a função SDK
getEntityData (of T).
sticky_note_2Notas
Neste artigo poderá consultar informações detalhadas relacionadas com as funções da classe Query.
Uma vantagem de utilizar esta forma de consulta está relacionada com o acesso à valores de
campos virtuais das entidades do PHC GO.
Como podemos ver no
Dicionário de Dados da aplicação, muitas entidades possuem os chamados
campos virtuais. Os valores dos campos virtuais não ficam gravados fisicamente na base de dados. No entanto, uma vez que funções SDK que utilizam o objeto
QueryVO retornam o registo completo das entidades da aplicação (e não apenas os valores guardados na base de dados), podemos consultar ou utilizar valores dos
campos virtuais nas consultas à BD efetuadas através da linguagem
Visual Basic .NET.
Por exemplo, podemos construir um comando VB.NET responsável por retornar os documentos de faturação da série
ndoc igual a
1 que não estão anulados, não estão em rascunho e ainda não foram totalmente regularizados. O comando
Visual Basic .NET mostrado abaixo efetua o pretendido:
´Vamos criar um QueryVO
Dim query As QueryVO = New QueryVO()
´Vamos indicar a tabela que queremos efectuar o Select
query.entityName = Ft.getTableName
´Vamos indicar que queremos retornar todos os campos
query.SelectItems.Add("*")
´Vamos implementar o filtro dos dados
´Queremos os documentos de faturação apenas da série nº 1
query.filterItems.Add(New FilterItem(Ft.ndoc, Comparison.Equal, 1))
´Queremos os documentos de faturação que não estão anulados e não estão em rascunho
query.filterItems.Add(New FilterItem(Ft.anulada, Comparison.Equal, 0))
query.filterItems.Add(New FilterItem(Ft.draftRecord, Comparison.Equal, 0))
´Queremos apenas os documentos de faturação que não estão totalmente regularizados. Aqui fazemos uso do campo virtual enreg
´Apesar do valor deste campo não estar fisicamente guardado na base de dados, conseguimos utilizá-lo no QueryVO
query.filterItems.Add(New FilterItem(Ft.enreg, Comparison.NotEqual, Ft.etotal))
´Vamos ordenar por ano e número do documento
query.OrderByItems.Add(New OrderByItem(ft.ftano, OrderTypes.Descending))
query.OrderByItems.Add(New OrderByItem(ft.fno, OrderTypes.Descending))
return SDK.Query.GetEntityData(Of FtVO)(query)
Neste comando, criamos um
QueryVO responsável por executar a instrução de Select desejada com um filtro que utiliza o campo virtual
ft.enreg responsável por retornar apenas os documentos de faturação que ainda não estão regularizados.
As queries no PHC GO feitas através do objeto QueryVO garantem também uma maior segurança nas consultas à base de dados impedindo consultas excessivas ao servidor que possam bloquear o acesso às instalações.
sticky_note_2Notas
Para mais informações a respeito do objeto
QueryVO, carregue
aqui .