Array
(
)

Componentes Data. Usar ou não ?

Edumarc
   - 10 ago 2004

Ouvi muitas vezes que os componentes data, no caso dbedits, dbgrids, deixam a aplicação mais carregada, prejudicando o sistema. Qual seria solução então, utilizar os componentes edit, combos, stringgrid, e alimenta-los com os dados manualmente e sempre usar query no lugar de table.
Isto torna o desenvolvimento mais demorado, e um pouco arduo. No caso do dbexpress é necessário três componentes sqldataset, datasetprovider e clientdateset, sendo dos dois ultimos para a navegação.
Faço todas as movimentações do banco, então utilizando o sqldataset (inserções, exclusões, updates) e reativo quando finalizo o movimento.
O que seria certo usar?, o que vc usam?, por exemplo, poderia colocar em meu programa clientdataset.insert e depois alimentar os campos (clientdataset.fieldbyname(´nome´).value := edit1.text) ? seria certo isto ? com o sqldataset posso trabalhar com quantos campos eu quiser (insert into cliente (nome) values(:nome)), porém da mesma forma preciso passar os parametros (sqldataset.parambyname(´nome´).value := edit1.text) neste caso estaria especificando somente um campo e não dando insert no registro todo. O quanto eu ganho de performance ? Gostaria que vcs me ajudassem nesta decisão.
Grato


Okama
   - 10 ago 2004

Não fiz teste de performance para saber qual é melhor. Eu prefiro o trabalho mais árduo, como já comentei em outro post e deixo claro que é questão de preferência.

Usando Edits eu controlo todo o preenchimento do componente, faço a validação com máscaras, preencho outros edits automaticamente com o query fechado.

Depois atualizo em um único SQL, não preciso passar parâmetros uso a cláusula ´where´ como ´update tabela set nome=´João´ where codigo = 1´

Dá pra fazer tudo isso com DBEdit e mais rápido, mas eu prefiro controlar os campos e posso fazer isso sem conexão com o banco.


Bruno Belchior
   - 11 ago 2004

cara eu ultilizo dessa forma q vc disse ou seja primeiro Coloco o DataSet em Modo de Inserção ou seja DM.QryClientes.Append e depois mando os valores para os campos (fields) do DataSet DM.QryClientesNome.AsSting := EdNome.Text e por fim finalizo fazendo as validações de campos como bem quizer evitando assim excessões indezejadas e outras desvantagens dos componentes Data e por falar nisso uso a dobradinha TQuery+TUpdateSQL que juntos enviam as atualizações ´Append, Insert, Post´ exatamente como instrução SQL só que automaticamente... Espero ter ajudado...