Qual melhor maneira de trabalhar com dados em um sistema

Delphi

03/02/2004

Bom dia.

Qual é a melhor maneira de trabalhar com dados em um sistema multiusuario?

Várias pessoas falam q o programador q der um ´select * from´ em uma tabelinha de 500,000 registros irão para o inferno. Concordo plenamente.
Mas, entao o q fazer? Em um dos meus sistemas, faço um filtro onde listo apenas os dados do dia. Melhorou 1000¬ a velocidade.
Mas o q fazer e o q NAO fazer? Tipo, quando usar um DBLoockupComboBox? Quando utilizar Stored Procedures? Quando utilizar Views?

Hoje, sempre q possivel utilizo componente ADO. Qual o melhor componente de acesso a dados? ADO, DBE, Interbase, Outros???
Abraços,

Vanius


Vanius

Vanius

Curtidas 0

Respostas

Paulo_amorim

Paulo_amorim

03/02/2004

Olá

Pow cara...isso acho que da um debate e tanto...

Na minha opiniao (que não eh tao respeitavel, visto que trabalho faz pouco tempo com aplicaçoes de banco de dados):

Vc nao vai pro inferno porque deu select * em uma tabela de 500.000 registros... os que vao te mandar pro inferno sao os usuarios da rede...ehehe:twisted:
Eu costumo usar DBLookUpComboBox ligado sempre a queries que filtram BEM FILTRADO...pq o usuario pode ateh aturar uma demora de rede porque apertou SELECIONAR, mas pq ele ABRIU A TELA demorar mt tempo, eh um inferno!!!
Tambem utilizo STP quando vou mexer no banco, enquanto que seleciono por Queries...no sei se isso eh correto...

Como ja disse, sao coisas de quem ainda tem muito o que aprender...
Espero que haja varias respostas e isso seja produtivo!

Até+


GOSTEI 0
Ltres

Ltres

03/02/2004

Olha, essa duvida é muito pessoal.. depende de cada um saber qual é o melhor. Acho q isso só se descobre com testes.
Mas pelo q sei o melhor é o Interbase ou Firebird usando dbExpress. Em relação ao uso de lookups.. hum.. só em casos de muita necessidade. Ainda prefiro usar uma simples Query e um combobox comum.


GOSTEI 0
Tarcisiojr

Tarcisiojr

03/02/2004

na minha opniao eh sempre bom botar um limit de registros a serem exibidos na grid com a opcao de o proprio usuario alterar este limite no caso do mysql q eu ultilizo eu faco assim

ex:

Sql.Add(´Selelct * from tbCliente´);
Sql.Add(´Where Cliente Like ´¬´+Edit1.text+´¬´´);
Sql.Add(´Order By Cliente´);
Sql.Add(´Limit 0,100´);

falow espero ter ajudado......


GOSTEI 0
Weber

Weber

03/02/2004

Olha, essa duvida é muito pessoal.. depende de cada um saber qual é o melhor. Acho q isso só se descobre com testes. Mas pelo q sei o melhor é o Interbase ou Firebird usando dbExpress. Em relação ao uso de lookups.. hum.. só em casos de muita necessidade. Ainda prefiro usar uma simples Query e um combobox comum.


Concordo plenamente.
No meu caso, depois de apanhar muito, passei a trabalhar somente com Query, StringGrid só em ultimo caso, DBGrid jamais.
Todas as minhas telas tem botões Novo,Editar,Excluir,Salvar,Etc. Dessa forma quando ao abrir o form não tenho que dar select algum e a abertura é imediata.
Na hora da instalação do programo eu instuo o usuário a utilizar corretamente as telas de pesquisas explicando que para localizar um cliente se ele fizer pesquisa por ´João´ a resposta do sistema será muito mais rápida do que uma pesquisa por ´J´.
Trabalhando dessa forma praticamente resolvi meus problemas com clientes reclamando de sistema lento.
Tenho um cliente com banco de dados com mais ou menos 100 mil registros e esse cliente utiliza maquinas Pentium 200.

Só pra complementar, depois que passei a usar Query comum, Edit,MaskEdit e StringGrid e deixei de lado do DBEdit e DBGrid meus problemas com conflitos em rede em transações acabaram.

Eu trabalho com Interbase.


GOSTEI 0
Rodolpho123

Rodolpho123

03/02/2004

Bem, todas as respostas acimas são completamente válidas, porém, eu acho o seguinte:
Para mim, as Queries são fantásticas e dificilmente desenvolvo um aplicativo sem elas. Os bancos InterBase/FireBird já reseolvem este problema de recuperação/alteração dos dados, e vai também aquela frase: ´Uma grande quantidade de dados, exige uma boa máquina´.
Espero tê-lo ajudado.
Abraços.....!


GOSTEI 0
POSTAR