Aliases em consultas SQL
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 !!!!
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
Curtidas 0
Respostas
Elton Rosa
22/07/2010
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..
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..
GOSTEI 0