GARANTIR DESCONTO

Fórum Aliases em consultas SQL #381975

22/07/2010

0

Boa tarde pessoal !

Estou desenvolvendo um sistema todo parametrizado (exibindo apenas um registro por vez usando o conjunto UniQuery + DataSetProvider + ClientDataSet) utilizando o PostgreSQL como banco de dados e os componentes da Devart (Unidac). Como sabemos, é um tanto trabalhaso ficar configurando o DisplayLabel dos campos e ainda os ProviderFlags, consumindo certo tempo.

Pra diminuir um pouco desse tempo gasto, penso em utilizar alias para os nomes dos campos das consultas SQL, renomeando para o nome do campo que será configurando os DiplayLabel. Por exemplo:

Ao invés de:

SELECT
  usuarios.perfil.perfil_id,
  usuarios.perfil.nome,
  usuarios.perfil.descricao
FROM
  usuarios.perfil
WHERE
  usuarios.perfil.perfil_id = :perfil_id

Ficaria assim:

SELECT
  usuarios.perfil.perfil_id "Código",
  usuarios.perfil.nome "Nome",
  usuarios.perfil.descricao "Descrição"
FROM
  usuarios.perfil
WHERE
  usuarios.perfil.perfil_id = :perfil_id


Agora vem a questão na qual estou com dúvidas:

 - Se eu fizer dessa segunda forma, para quem já passou por isso, pode ocorreu algum erro interno no banco por causa dos acentos e cedilhas ??
 - Poderá haver alguma queda de performance no banco ??


Espero ter sido claro.

Grato !!!!
Elton Rosa

Elton Rosa

Responder

Posts

26/07/2010

Elton Rosa

Olha pessoal, eu consegui resolver sozinho mesmo.

Fica aí a solução:

 - No componente UniQuery (Devart), na propriedade Options, tem um sub-propriedade chamanda FieldsOrigin, a qual como o próprio nome sugere, na hora de inserir, atualizar ou gravar os dados ele gera a sentença SQL com base no nome original dos campos, sem usar o alias.

Antes acontencia um erro, como "Campo CÓDIGO inexistente no banco de dados...", mas depois que setei essa propriedade pra True, agora tá funfando legal !!!!

Quantos à performance, fiz vários testes aqui e não houve diferença significativa..

Agradeço ao que tentaram me ajudar..
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar