Deem suas opiniões sobre componentes DBExpress
Queria saber opinião do pessoal que desenvolve com os cmomponentes DBExpress. A pergunta é:
Os componentes devem ficar em DataModules ou juntos a Tela? Qual a diferença entre um e outro se é que ela existe.
Os componentes devem ficar em DataModules ou juntos a Tela? Qual a diferença entre um e outro se é que ela existe.
Foxcyber
Curtidas 0
Respostas
Cesarpir
22/10/2005
Bom como é somente uma opinião, eu desenvolvo desde o delphi 6 quando saiu o dbexpress, e acho que foi a melhor solução para mim usando juntamente com o firebird 1.5, apesar de achar este banco lento as vezes, mas eficiente, estou agora tb com o mysql 4.0.
Eu uso os componentes tudo em datamodule, mas nada impede que seja usado nos forms, tenho por costume o datamodule pois fica mais organizado e a tela do form fica livre, olha tô dizendo isto com o firebird e mysql pois já ouvi comentários de amigos que determinados bancos, acho que o sql server não aceita ou não é aconselhável o uso de datamodule, mas não posso afirmar pois nunca usei o sql server em win32, portanto isto é só um comentário que ouvi dizer.
Eu uso os seguintes componentes no datamodule:
SqlQuery
Datasetprovider
ClientDataset
Datasource
Dificilmente uso o sqldataset pois li que se for trocar de banco de dados seria mais fácil com o sqlQuery.
Finalizando gostei muito de usar o dbexpress, é lógico que no começo ele se torna trabalhoso, pois o número de componentes aumentou, mas as vantagens também, pois quando usava o bde tive muito mais problemas.
Pena que a delphi está tomando um outro rumo, digo isto ref ao delphi 2005, usei e a parte do .net não gostei, mas como dizem é a evolução, o .net para alguns é o futuro, enfim fica só este comentário.
Espero que ajude, e que venha mais opiniões, tb me interesso pelo assunto.
Abraços
César
Eu uso os componentes tudo em datamodule, mas nada impede que seja usado nos forms, tenho por costume o datamodule pois fica mais organizado e a tela do form fica livre, olha tô dizendo isto com o firebird e mysql pois já ouvi comentários de amigos que determinados bancos, acho que o sql server não aceita ou não é aconselhável o uso de datamodule, mas não posso afirmar pois nunca usei o sql server em win32, portanto isto é só um comentário que ouvi dizer.
Eu uso os seguintes componentes no datamodule:
SqlQuery
Datasetprovider
ClientDataset
Datasource
Dificilmente uso o sqldataset pois li que se for trocar de banco de dados seria mais fácil com o sqlQuery.
Finalizando gostei muito de usar o dbexpress, é lógico que no começo ele se torna trabalhoso, pois o número de componentes aumentou, mas as vantagens também, pois quando usava o bde tive muito mais problemas.
Pena que a delphi está tomando um outro rumo, digo isto ref ao delphi 2005, usei e a parte do .net não gostei, mas como dizem é a evolução, o .net para alguns é o futuro, enfim fica só este comentário.
Espero que ajude, e que venha mais opiniões, tb me interesso pelo assunto.
Abraços
César
GOSTEI 0
Jcalmeij
22/10/2005
Pessoal, já utilizei o delphi e conexões de banco de diversas formas,
com componentes conscientes, com comandos criados ´no braço´ porém agora estamos buscando soluções de mais alto nível, por exemplo com o dbExpress.
Meu problema no entanto, utilizo a tríade: SQLQuery + Provider + ClientDataSet, conectando ao Oracle.
Meu problema é na hora da atualização.
Qdo envio o ApplyUpdates(-1);
Não retorna erro e também grava nada que foi feito no Client.
Sugestões???
Agradeço
Julio Jr.
com componentes conscientes, com comandos criados ´no braço´ porém agora estamos buscando soluções de mais alto nível, por exemplo com o dbExpress.
Meu problema no entanto, utilizo a tríade: SQLQuery + Provider + ClientDataSet, conectando ao Oracle.
Meu problema é na hora da atualização.
Qdo envio o ApplyUpdates(-1);
Não retorna erro e também grava nada que foi feito no Client.
Sugestões???
Agradeço
Julio Jr.
GOSTEI 0
Rômulo Barros
22/10/2005
Pessoal, já utilizei o delphi e conexões de banco de diversas formas,
com componentes conscientes, com comandos criados ´no braço´ porém agora estamos buscando soluções de mais alto nível, por exemplo com o dbExpress.
Meu problema no entanto, utilizo a tríade: SQLQuery + Provider + ClientDataSet, conectando ao Oracle.
Meu problema é na hora da atualização.
Qdo envio o ApplyUpdates(-1);
Não retorna erro e também grava nada que foi feito no Client.
Sugestões???
Agradeço
Julio Jr.
Solução para esta situação: [url=http://forum.clubedelphi.net/viewtopic.php?t=69213]CLICK AQUI[/url]
GOSTEI 0
Cledesma99
22/10/2005
Na mia opiniao os componentes DBExpress sao os melhores eu uso con SqlServer2000 , Firebird 1.52 e Oracle 10G naum tenho problema algum , coloco todos no DataModule, uso tambiem con DataSnap. Acredito que sejan os melhores componentes de acceso a dados no delphi.
GOSTEI 0
Raserafim
22/10/2005
não utilizo o DBExpress e sim o MDO. mas o uso do DataModule independe do componente de acesso que você vai utilizar. é apenas um repositório para organizar melhor a programação. onde a boa prática da programação diz que o ideal é que seja separado o acesso a dados do restante do programa (códigos, interface...).
não consigo me imaginar programando sem o DataModule. utilizo um para cada consulta que preciso fazer, colocando dentro os componentes para acesso (uma Query, uma Transaction e um DataSource. e as vezes um DataSetProvider e um ClientDataSet). e sempre os componentes com o mesmo nome em todos os DataModules.
crio um DataModule padrão e herdo todos os outros dele.
não consigo me imaginar programando sem o DataModule. utilizo um para cada consulta que preciso fazer, colocando dentro os componentes para acesso (uma Query, uma Transaction e um DataSource. e as vezes um DataSetProvider e um ClientDataSet). e sempre os componentes com o mesmo nome em todos os DataModules.
crio um DataModule padrão e herdo todos os outros dele.
GOSTEI 0
Michael
22/10/2005
Os componentes devem ficar em DataModules ou juntos a Tela? Qual a diferença entre um e outro se é que ela existe.
A diferença está na qualidade do programador. Quem coloca componentes de acesso a dados em formulários, e consequentemente mescla interface do usuário com regras de negócio, não pode ser chamado de programador Delphi. Estou sendo radical pois isso é um péssimo hábito que infelizmente é muito praticado. Este é um dos ´problemas´ do Delphi que dá margem para o questionamento de sua qualidade como ferramenta de desenvolvimento, não por seus próprios usuários, mas sim programadores de outras linguagens, principalmente Java, como se pode ver [url=http://forum.devmedia.com.br/viewtopic.php?t=62855&highlight=]neste tópico[/url].
Ah, não é nada pessoal colega, ok? ;-) Digo de uma maneira geral.
(...)ouvi comentários de amigos que determinados bancos, acho que o sql server não aceita ou não é aconselhável o uso de datamodule(...)
Desconheço esta informação. Um DataModule é um form especial. Em nada influencia os componentes que estão nele. Vc pode colocar qualquer componente não-visual em um DataModule, sem nenhuma diferença em relação a um form. Diferença técnica, que fique claro. Em termos de organização e boas maneiras, vale o que eu disse anteriormente. E, como tbm já dito, é altamente aconselhável seu uso, quase que obrigatório.
Na mia opiniao os componentes DBExpress sao os melhores eu uso con SqlServer2000 , Firebird 1.52 e Oracle 10G naum tenho problema algum , coloco todos no DataModule, uso tambiem con DataSnap. Acredito que sejan os melhores componentes de acceso a dados no delphi.
Para acessar o SQL Server, a tecnologia mais indicada é o ADO, da própria Microsoft. Tanto em termos de recursos qto em desempenho, que se mostra superior ao dbExpress. O problema é qdo o sistema é multi-banco, onde fica mais complicado ter dois tipos diferentes de componentes de acesso. Neste caso a saída menos dolorosa é usar o DBX mesmo.
(...) onde a boa prática da programação diz que o ideal é que seja separado o acesso a dados do restante do programa (códigos, interface...).(...)
Perfeitamente correto. Regras de negócio são uma coisa e interface com o usuário outra. Por isso que eu gosto de multi-camadas. Este problema quase não existe.
(...)utilizo um para cada consulta que preciso fazer, colocando dentro os componentes para acesso (...)
Uma dica, aproveitando a deixa do colega. ;-)
Isso depende do nível de granularidade que a relação entre as informações possui. Em geral, vc pode não precisa ter um DataModule para cada Query, mas pode agrupar as que tem algum tipo de vínculo. O importante é ter um DataModule separado para os componentes de conexão (SQLConnection, ADOConnection, etc).
[]´s
GOSTEI 0
Foxcyber
22/10/2005
Bom saber então que estou no caminho certo pois uso os componentes no dataModule também. É que vejo as vezes algumas pessoas colocando eles em tela e por isso surgiu a dúvida e então resolvi postar aqui para ver opiniões de pessoas mais experientes que eu. É isso aí valeu...
GOSTEI 0
Michaell
22/10/2005
Bom... Eu utilizo Delphi 7 e DBX com multicamadas e no Transactional eu coloco o SQLConnection + SQLDataSet + DataSetProvider, sendo essa parte o servidor. Já para a parte cliente, não vejo problema nenhum em colocar o ClientDataSet + DataSource nos Forms. Até porque minhas regras de negócio estão no servidor...
[]´s
[]´s
GOSTEI 0
Danielclubedelphi
22/10/2005
´Progamadores Delphi´
O fato de colocar componentes de acesso no modulo nao separa em nada o designer da camada de negócio. Só está em outro lugar... Alias, quanto o modulo ficar com 200 componentes simplesmente estará um desastre achar algo. Vcs acham que ´separou´ dando linhas de comando no formulario fazendo referencia aos componentes no modulo? dando comandos de SQL no formulario?
Separar a aplicação do modo que vcs estao falando exige trabalhar com objeto e persistencia dos mesmos no banco... abstração de dados... cada camada do objeto bem trabalhada. Mas isso é pra Java... no Delphi não compensa tanto esforço.
Já que provavelmente vcs nao trabalhem com objetos no delphi, coloquem no Formulario mesmo... a diferença é visual mesmo... Só coloca no modulo o que vc vai querer q fique disponivel no sistema todo o tempo todo...
Fazia anos que nao lia nem mandava mensagens para esse fórum justamente pq algumas pessoas davam umas opiniões imprestáveis e vc nao sabia mais se acreditava em tudo ou em nada... ou seja... sem crédito algum.
Agora vou passar mais alguns anos sem mandar e volto quando ler besteira. E nem adianta responder algo pra mim pq nao leio. Boa noite.
O fato de colocar componentes de acesso no modulo nao separa em nada o designer da camada de negócio. Só está em outro lugar... Alias, quanto o modulo ficar com 200 componentes simplesmente estará um desastre achar algo. Vcs acham que ´separou´ dando linhas de comando no formulario fazendo referencia aos componentes no modulo? dando comandos de SQL no formulario?
Separar a aplicação do modo que vcs estao falando exige trabalhar com objeto e persistencia dos mesmos no banco... abstração de dados... cada camada do objeto bem trabalhada. Mas isso é pra Java... no Delphi não compensa tanto esforço.
Já que provavelmente vcs nao trabalhem com objetos no delphi, coloquem no Formulario mesmo... a diferença é visual mesmo... Só coloca no modulo o que vc vai querer q fique disponivel no sistema todo o tempo todo...
Fazia anos que nao lia nem mandava mensagens para esse fórum justamente pq algumas pessoas davam umas opiniões imprestáveis e vc nao sabia mais se acreditava em tudo ou em nada... ou seja... sem crédito algum.
Agora vou passar mais alguns anos sem mandar e volto quando ler besteira. E nem adianta responder algo pra mim pq nao leio. Boa noite.
GOSTEI 0
Cesarpir
22/10/2005
E ai amigo FoxCyber gostou das opiniões, nossa que pessoas radicais que vc acabou despertando hein :D , amigo espero que apesar de certas ignorâncias e opiniões prepotentes, que pelo menos te auxiliem em algo, afinal toda opinião deve ser respeitada, mas pelo que deu para perceber que dbexpress na maioria é aconselhável, agora é com vc, se precisar de algo posso te enviar é só entrar em contato.
Boa sorte !
César
Boa sorte !
César
GOSTEI 0
Michael
22/10/2005
Eu lembro de vc. Um tempo atrás respondi uma mensagem sua onde vc dizia que sua empresa cobrava para liberar os dados dos bancos de seu cliente, e eu, e mais um monte, dissemos que isso era um absurdo, pois os dados não pertencem à softhouse, e sim ao cliente. Eis um exemplo de empresa imprestável.
É claro, suas mensagens são uns dos vários exemplos de opiniões imprestáveis deste fórum.
E eu sei que vc vai ler isso.
[]´s
É claro, suas mensagens são uns dos vários exemplos de opiniões imprestáveis deste fórum.
E eu sei que vc vai ler isso.
[]´s
GOSTEI 0
Danielclubedelphi
22/10/2005
Olha que bobo, eu li mesmo... E nem sei pq vc se doeu, nao disse q a msg era pra vc...
Amigo... vc vai ser pobre pro resto da vida programando no delphi... Alias, como vc cobra seus clientes? Vc tem algum cliente?
Sobre cobrar pelos dados... Nao é pelos dados Santo Cristo... É nao liberar a senha do banco pq la está metade do que programei. Se ele quer a porcaria dos clientes dele eu faço um relatório, exporto no excel, em txt, qualquer porcaria... Mas as funções são minhas... A organização das tabelas são minhas... Vc nao faz store procedures ??? Triggers ??? Views ??? E vendemos todo o código do banco para os clientes quando trocamos de linguagem e banco de dados. Todo mundo trocou de carro ou reformou a casa... os clientes contrataram pessoas para manter o sistema antigo... cobramos até hoje a assistência quando pedem... Nós mesmos escolhemos o pessoal que iam contratar... Todos ficaram felizes menos alguns idealistas que participaram daquele fórum... Todos os clientes que compraram estão felizes e os que nao compraram eu nao sei o que aconteceu... Eu exportei TODOS os dados que eles pediram em TXT. DE GRAÇA!!!
Mas não é difícil vc ter clientes trabalhando com Delphi... O Cliente só precisa NAO saber nada da área... Mas ai vc fica na situação de cobrar pouquinho demais pq ele pode simplesmente comprar um sistema de um menino de 15 anos que organizou tudo usando um modulo. Mas quando a empresa crescer e vc nao estiver mais dando conta, vai aparecer um tubarão e te roubar o cliente cobrando 10 vezes mais programando numa linguagem que vc mal sabe pronunciar o nome.
Nós não vendemos sistemas para quem nao tem um... Apenas substituimos o sistema dos clientes que tinham um sistema antigo. Como a maioria que programa em Delphi faz com os sistemas feitos em foxpro, clipper, etc... Nós substituimos Delphis e VBs...
Hum... agora nao vou mais ler esse fórum mesmo... eu nao uso mais Delphi... Lógico que não é pq ele só serve pra farmárcia e lojinha... Mas é pq programar classicamente com objetos é mais caro do que com java. E como todo mundo pode ver, prefiro dinheiro do que ideais de programação... Se eu ganho mais dinheiro é bom, se eu nao ganho é ruim. Simples.
Por favor nao me respondam nada pq eu nao resisto e fico perdendo meu tempo respondendo. Alguem faça o favor de bloquear meu login ou algo do tipo... Eu vou tentar apagar meu cadastro do site...
Amigo... vc vai ser pobre pro resto da vida programando no delphi... Alias, como vc cobra seus clientes? Vc tem algum cliente?
Sobre cobrar pelos dados... Nao é pelos dados Santo Cristo... É nao liberar a senha do banco pq la está metade do que programei. Se ele quer a porcaria dos clientes dele eu faço um relatório, exporto no excel, em txt, qualquer porcaria... Mas as funções são minhas... A organização das tabelas são minhas... Vc nao faz store procedures ??? Triggers ??? Views ??? E vendemos todo o código do banco para os clientes quando trocamos de linguagem e banco de dados. Todo mundo trocou de carro ou reformou a casa... os clientes contrataram pessoas para manter o sistema antigo... cobramos até hoje a assistência quando pedem... Nós mesmos escolhemos o pessoal que iam contratar... Todos ficaram felizes menos alguns idealistas que participaram daquele fórum... Todos os clientes que compraram estão felizes e os que nao compraram eu nao sei o que aconteceu... Eu exportei TODOS os dados que eles pediram em TXT. DE GRAÇA!!!
Mas não é difícil vc ter clientes trabalhando com Delphi... O Cliente só precisa NAO saber nada da área... Mas ai vc fica na situação de cobrar pouquinho demais pq ele pode simplesmente comprar um sistema de um menino de 15 anos que organizou tudo usando um modulo. Mas quando a empresa crescer e vc nao estiver mais dando conta, vai aparecer um tubarão e te roubar o cliente cobrando 10 vezes mais programando numa linguagem que vc mal sabe pronunciar o nome.
Nós não vendemos sistemas para quem nao tem um... Apenas substituimos o sistema dos clientes que tinham um sistema antigo. Como a maioria que programa em Delphi faz com os sistemas feitos em foxpro, clipper, etc... Nós substituimos Delphis e VBs...
Hum... agora nao vou mais ler esse fórum mesmo... eu nao uso mais Delphi... Lógico que não é pq ele só serve pra farmárcia e lojinha... Mas é pq programar classicamente com objetos é mais caro do que com java. E como todo mundo pode ver, prefiro dinheiro do que ideais de programação... Se eu ganho mais dinheiro é bom, se eu nao ganho é ruim. Simples.
Por favor nao me respondam nada pq eu nao resisto e fico perdendo meu tempo respondendo. Alguem faça o favor de bloquear meu login ou algo do tipo... Eu vou tentar apagar meu cadastro do site...
GOSTEI 0
Vinicius2k
22/10/2005
A dúvida do colega que postou a mensagem já foi respondida e a discussão que se segue é inútil.
Topico bloqueado.
Topico bloqueado.
GOSTEI 0