GARANTIR DESCONTO

Fórum BDE x ADO x dbExpress x (Quem mais??) #250269

13/09/2004

0

Galera, usava o BDE com Delphi 5, SQL 7 no Win XP Pro. Migrei tudo para ADO. Ficou muito lento, cheio de problemas, etc.

Procurando algumas soluções (ainda não obtive - é só ler uma outra pergunta minha mais abaixo) vi muitos comentários sobre o dbExpress. Surge agora a pergunta crucial: [b:e9ad125d1b]qual das três (ADO, BDE, dbExpress) é a melhor para essa situação? [/b:e9ad125d1b](Delphi 5, SQL Server 7 e Win XP Pro). Mas, por favor, quero aprender então, se possível, não simplesmente respondam A ou B mas justifiquem pois preciso de tomar uma descisão séria nos próximos dias sobre a a tecnolgia de acesso, haja visto que a ADO tá me deixando (feio) na mão.


Willian

Willian

Responder

Posts

13/09/2004

Gandalf.nho

BDE é aconselhável esquecer, pq é uma tecnologia ultrapassada. O DBExpress é vantajoso no quesito de permitir usar vários tipos de base de dados mudando apenas (em teoria) o driver de acesso. Mas, antes de avaliar, como você está trabalhando com o banco no ADO?


Responder

Gostei + 0

13/09/2004

Vinicius2k

Colega,

Não creio que vc tenha as 3 opções, já que o dbExpress não está disponível no Delphi 5 (somente à partir do 6)...
Em resumo, ou vc fica com a BDE ou tenta otimizar sua aplicação para utilização da ADO...
Não sou grande conhecedor da ADO, mas me parece estranho vc ter lentidão, já é uma opinião quase unanime de que ADO é a melhor forma de acessar o MS-SQLServer...
Mesmo que vc tivesse o dbExpress à sua disposição os colegas que trabalham com este SGBD, provavelmente, lhe recomendariam utilizar ADO....

T+


Responder

Gostei + 0

13/09/2004

Marcelo Souza

Amigao o ado ñ precisa d´pont pra fazer a conexao ele vai direto ao banco e o bde precisa d um alias pra fazer a conexao ao banco...reveja esse conceito..


Responder

Gostei + 0

13/09/2004

Dataclass

Olá!

Atualmente não utilizo mais SQLServer nem MSAccess daí não uso mais ADO,porém na época que utilizavamos estas tecnologias migramos de BDE para ADO e foi muito bom.

Existem alguma opções nos componentes ADO que podem melhorar tua performance...não recordo bem mas tenta brincar um pouco com os componentes.

Espero ter sido útil.


Responder

Gostei + 0

13/09/2004

Leonardoffsilva

Estranho esse problema com o ADO.

Como está configurado o cursor (Server ou Client).
Qual o Banco de Dados?
Está usando AdoTable ou AdoQuery?

Para aplicações Win32, desconheço forma de acesso mais eficiente e otimizada que ADO, mesmo usando outros SGDB (DB2, Oracle, Pervasive, etc).

Mesmo quando preciso trabalhar com o PostgreSql, uso o driver ADO para ODBC para fazer uma ponte com o driver ODBC do postgreSQL e digo que fica muito bom.

Deve ter alguma coisa errada aí. Posta mais detelhes do seu problema!


Responder

Gostei + 0

13/09/2004

Leonardoffsilva

Só pra dar uma lembrada:

SQL Server - Microsoft
Windows XP - Microsoft
ADO - Metodo de acesso a SGBD da Microsoft.

Como se vê, é muito difícil dar problema de lentidão.

Agora se eu não me engano, o delphi 5 tem problema com o ADO original da Borland e existe um update, inclusive para resolver um Bug de EOF aleatórios.

Abraços!


Responder

Gostei + 0

14/09/2004

Willian

Eu já passei o UPDATE da Borland para corrigir os problemas. Mas mesmo assim continua lento e com alguns bugs, como o de não atualizar a DBGrid após uma alteração muito grande, nem aceitar Refresh na ADOTable. Alguém conhece alguma matéria que poderia me orientar melhor sobre o assunto?


Responder

Gostei + 0

14/09/2004

Leonardoffsilva

Só uma dica:

Não usa ADOTable em SqlServer!

ADOTable é para trabalhar com o Access. Funciona em SQL Server mas realmente dá problema de lentidão, pois toda a tabela é trafegada pela rede.

Tenta criar sua aplicação dentro dos conceitos de Cliente/Servidor, fazendo uso do ADOQuery e de transações. Inclusive para Access eu prefiro fazer uso exclusivo de ADOQuery.

Mas lembre-se de quando for fazer um select que retorne muitos registros de limitá-los em grupos. Aqui eu baixo em grupos de 50 registros.

Abraços!


Responder

Gostei + 0

14/09/2004

Willian

[b:9f9ad66567]Não usar ADOTable com SQL Server?[/b:9f9ad66567]

Não entendi... Como eu altero os dados então? Exibo os dados num DBGrid e preciso gravá-los. Como faço isso sem ADO Table??? O ADO pra mim é tão complicado que nem campo Lookup funciona: dá pau direto!!!!


Responder

Gostei + 0

14/09/2004

Leonardoffsilva

Usando o ADOQuery, uma DBGrid receberia um select de uma ADOQuery com os dados.
Você usaria a DBGrid para consulta e não para edição. Selecione a informação atravéz da DBGrid e mande os dados para objetos textEdit ou equivalentes.
Leia a alteração feita via usuário e comande um Update table via mesma adoquery. Logo após faça um novo select que a dbgrid virá atualizada.

Ou use uma segunda AdoQuery para a atualização. Nesse caso é só dar um refresh na AdoQuery associada ao dbgrid que a mesma é atualizada com os dados mais recentes.

Há lembre-se de deixar o curosr em Server, pois você sempre terá os dados do SGDB e não de um cache local.

Parece confuso mais é muito mais simples que o dbexpress.

Há, lembre-se que:

Conectores ADO e ODBC - São fabricados pelos fornecedores dos SGBD(em quase sua totalidade)

Conectores dbExpress - São fabricados pela Borland ou por Terceiros, mas ainda não vi um sequer fabricador pelo fornecedor do SGBD.

Pos isso que eu adotei o ADO e logo estarei migrando para ADO.NET

Dá uma olhada em www.delphi.about.com que tem um curso on-line muito bom sobre ADO. Explica tudo e muito bem detalhado!

Abraços!


Responder

Gostei + 0

14/09/2004

Willian

O [b:93806a616d]leonardoffsilva[/b:93806a616d] me deu a seguinte dica [b:93806a616d](Valeu Leonardo!!!)[/b:93806a616d]:

[b:93806a616d][i:93806a616d][u:93806a616d]Há lembre-se de deixar o curosr em Server, pois você sempre terá os dados do SGDB e não de um cache local. [/u:93806a616d][/i:93806a616d][/b:93806a616d]

Resolveu!!! Valeu!!!! É duro ser novato nessas tecnologias.
Mas (sempre tem um ´mas´) surgiu um outro problema: quando eu ponho o cursor em Server ele não aceita mais nenhum tipo de índice. Como resolvo isso?

Obs.: Ficou muito mais rápido o sistema e os problemas desapareceram quase todos, persistem apenas agora os índices.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar