Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jerfs

[Resolvido] Pra que?

Recommended Posts

Funciona sim, e na minha opninião a aplicação fica melhor sem adicionar, pois se o nome de um dos campos da tabela mudar voce só teria que mudar o select da query. Nesse caso o acesso aos campos seria pelo indice do select

Ex da Query:

SELECT Nome, Telefone FROM CLIENTES

para acessar o campo nome utiliza-se
MinhaQuery.fields[0].asString;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Além da forma citada pelo nosso amigo men, você pode acessar seus registros no ADOQuery usando o fieldbyname.

 

ADOQuery.Fieldbyname('Campo').AsString;

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então se eu adicionar os campos de forma dinâmica (Select * from tabela) toda vez que o programa iniciar eu deixo o programa livre de alterações caso eu precise mudar alguma coisa no bd!?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Select não o impede de alterar tabelas e dados no BD... contudo, se sua tabela tiver flags de status por exemplo, chaves estrangeiras e tals, não fica muito bonito você mostrar isso num grid por exemplo sem tratar... afinal, suponha que tenha uma tabela com vários códigos de sistema que não interessam ao usuário ver... deixando um select * você vai mostrar todos estes campos e o cliente vai passar a te questionar porque tais campos aparecem ou desaparecem da tela (se você mudar as tabelas futuramente)... não ia ser algo muito legal...

 

Ademais, querys com campos explícitos geralmente tem melhor performance que o select *.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então você está me dizendo que o ato de setar os campos que devem ser exibidos no GRid não é muito utilizado, é melhor fazer a pesquisa no Query e mostrar o Query completo no grid.... certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nops... o que eu disse é que o select que você vai fazer não interfere no que faz no banco de dados... mas que em questão de perfomance um select campo1, campo2, .., campoN from tabela é melhor que um select * from tabela, e que carregar no grid apenas os dados que interessam o usuário é melhor que carregar N informações que para ele não fazem o menor sentido, como flags por exemplo.

 

Outra coisa... mesmo que você mostre os N campos num select, se for usar eles no código para algo como updates e inserts, você vai precisar identificar qual campo é qual... se usar a opção do men, com o ADOQuery.fields[0].AsString, seus campos nunca poderão mudar de lugar no retorno da query... se usar da forma que eu sugeri, os nomes dos campos nunca poderão mudar... ou seja, de um modo ou outro irá amarrar o seu select de retorno com o código.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.