Jerfs 1 Denunciar post Postado Abril 15, 2009 Para que eu preciso adicionar os campos de uma tabela dentro de um TADOQuery? Ele funciona sem adicionar? Compartilhar este post Link para o post Compartilhar em outros sites
men 0 Denunciar post Postado Abril 15, 2009 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-seMinhaQuery.fields[0].asString; Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Abril 16, 2009 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
Jerfs 1 Denunciar post Postado Abril 16, 2009 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
Chrnos 30 Denunciar post Postado Abril 16, 2009 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
Jerfs 1 Denunciar post Postado Abril 16, 2009 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
Chrnos 30 Denunciar post Postado Abril 16, 2009 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
Jerfs 1 Denunciar post Postado Abril 16, 2009 Muito agradecido pelo esclarecimento... valeu http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites