AJUDA SOBRE CONEXOES ADO DAO
Meu msn alvarobernardi@ig.com.br, estou sempre on porém com o status off, más se eu não responder é pq ñ estou mesmo, más pode deixar a mensagem que assim que eu entrar eu respondo
o access para muitos não chega nem a ser SGBD, sim com sistemas pequenos ele funciona muito bem mas quando se tratar de volume de dados, o ideal é usar um Banco de dados robusto, no seu caso o MySQL, poré. SQLserver, Oracle, Firebird são ótimos também.
Quanto a gratuidade do MySQL:
Esta é uma questão que aflinge muitos, e explicando em miudos, se seu sistema for um sistema OpenSource (código aberto) o MySQL poderá ser distribuido gratuitamente, porém se for um sistema a ser comercializado vc deverá adquirir uma licensa para seu sistema.
Firebird:
O Firebird é um ótimo SGBD e totalmente gratuito e fácil de se trabalhar.
A vantagem de se migrar para banco de dados mais robustos está principalmente na segurança e estabilidade, uma vez que a coisa mais fácil que tem é se quebrar uma senha do access.
No seu caso surgiu a duvida quanto migrar DAO para ADO... veja bem... vc pode usar ADO com access também, mas no caso o DAO é uma forma de conexão ultrapassada, sim claro em sistemas pequenos, é o DAO chega a ser um pouco mais rápido que o ADO, mas como dito ja é ultrapassado, migre para ADO.
As querys não mudarão muita coisa como já foi apresentado em alguns exemplos citados pelos colegas, pelo contrário, voce terá algumnas coisinhas a mais que poderá fazer direto na query.
e é isso...apenas uma conversa superficial das vantagens de se migrar.
Agora uma duvida que tive numa situaçao que tive q montar as pressas hoje.
Para impressao direto na porta LPT1 .. eu faço assim
print Arq, Tabela!campo
Eu posso usar essa expressao msm usando ADO?
ou para atribuir valores de tabela a uma variavel por exemplo teria uma sintaxe diferente ?
Quais as vantagens e desvantagens dessa troca e onde posso encontrar material para começar a migrar meu sistema? Precisarei reescrever todo o meu codigo se quiser fazer algo desse tipo? [Ô]SACOFRITO[Ô]
A pergunta é um tanto melindrosa , pois muitos fatores que estão envolvidos não foram definidos.
De forma geral para acessar uma base de dados Access em um computador de mesa ( desktop ) ou mesmo em um ambiente multiusuário a DAO é mais rápido que a ADO .
Em geral tudo vai depender do ambiente : a configuração da máquina , a desenho da aplicação , etc...
Então , se você esta fazendo um pequeno programa para uma máquina local ou uma rede com até 20 usuários, e não sabe se usa DAO ou ADO. Se a questão for rapidez escolha a DAO. Com a ADO a informação vai para o Jet que a processa e retorna para a ADO que a repassa para você. Usando a DAO a camada ADO (OLE DB) é removida tornando assim o processo mais rápido. Sem contar que o tamanho do seu aplicativo vai aumentar por conta da MDAC que você terá que distribuir junto com seus discos de instalação.
Se ao invés de resolver o seu problema eu acabei de bagunçar a sua cabeça , calma !!!
Eu ainda não teminei...
A ADO é ideal para um ambiente Cliente/Servidor com acesso simultâneo de grande proporções. Neste caso nem pense em usar DAO , muito menos o Access , como base de dados.( ADO Data Control ? não me faça rir...). Nestes casos você deve usar um banco de dados mais potente : SQL Server , Oracle , Sybase , Informix , DB2 , etc...
Nestas situações a ADO é quase imbatÃvel se comparada com a DAO além do que com a ADO sua aplicação se torna mais escalável e portátil ( se você usar SQL , procedimentos armazenados, etc...)
Resumindo:
- Aplicações locais ( monousuárias ) ou para ambiente multiusuário ( de 20 a 30 usuários concorrentes) -> DAO
- Aplicações Cliente/Servidor com acesso concorrente de mais de 30 usuários -> ADO
DAO é recomendado para usar o bd access até o nome ja diz (Data Access Objetc)
ADO é usado para a maioria dos banco de dados
Clareou, agora ?
Um SGBD tem dezenas de recursos que podem simplesmente ser essenciais (SPs, UDFs, Triggers e por aà vai) para o projeto que vc vai desenvolver. é importante conhecer bem o que é um SGBD antes de querer trabalhar com ele. Pense nisso. ;)
Citação::
Bom vou dar minha sugestão, vamos falar na pratica:
o access para muitos não chega nem a ser SGBD, sim com sistemas pequenos ele funciona muito bem mas quando se tratar de volume de dados, o ideal é usar um Banco de dados robusto, no seu caso o MySQL, poré. SQLserver, Oracle, Firebird são ótimos também.
Quanto a gratuidade do MySQL:
Esta é uma questão que aflinge muitos, e explicando em miudos, se seu sistema for um sistema OpenSource (código aberto) o MySQL poderá ser distribuido gratuitamente, porém se for um sistema a ser comercializado vc deverá adquirir uma licensa para seu sistema.
Firebird:
O Firebird é um ótimo SGBD e totalmente gratuito e fácil de se trabalhar.
A vantagem de se migrar para banco de dados mais robustos está principalmente na segurança e estabilidade, uma vez que a coisa mais fácil que tem é se quebrar uma senha do access.
No seu caso surgiu a duvida quanto migrar DAO para ADO... veja bem... vc pode usar ADO com access também, mas no caso o DAO é uma forma de conexão ultrapassada, sim claro em sistemas pequenos, é o DAO chega a ser um pouco mais rápido que o ADO, mas como dito ja é ultrapassado, migre para ADO.
As querys não mudarão muita coisa como já foi apresentado em alguns exemplos citados pelos colegas, pelo contrário, voce terá algumnas coisinhas a mais que poderá fazer direto na query.
e é isso...apenas uma conversa superficial das vantagens de se migrar.
Nossa, já vi explicação clara e objetiva, mas essa tah de parabens! muito bem elaborada!
Sobre o mysql ser gratuito quando é OpenSource e ser pago quando for distribuido eu li no site do macoratti... inclussive iria fazer um topico aqui para entender melhor sobre isso, mas pelo que vc disse ficou muito claro... inclussive mudei minha ideia sobre MySQL e Firebird... acho que vou mudar para o Firebird mesmo.
Citação::
Então , se você esta fazendo um pequeno programa para uma máquina local ou uma rede com até 20 usuários, e não sabe se usa DAO ou ADO. Se a questão for rapidez escolha a DAO.
Tenho um topico aqui aberto com 8 paginas referente a velocidade do DAO e a migrar para outro banco de dados por isso... notei que uma aplicação usando DAO onde há consulta/adição/edição/exclusão no banco de dados com 2 maquinas já se torna lenta, imagina 30 maquinas usando um banco de dados access ao mesmo tempo... quero nem pensar... troquei todos os hardwares (placa rede off, +memoria, switch, refiz cabo)... nao resolveu... comprei uma maquina só para ser servidor... melhorou um pouco... coloquei meu programa em aberto aqui no forum para baixarem... e quem baixou viu que tava tudo normal nele... tive que refazer tudo de uma forma que usasse menos ainda o acesso ao banco de dados... obtive um minusculo resultado... pelo menos meu cliente tá podendo usar agora 2 maquinas até que eu possa dar uma solução para ele... que será mudar para um SGBD robusto e ADO... não posso afirmar se ADO resolverá a rapidez, mas to caminhando para isso... quando eu terminar de migrar e instalar lá no meu cliente e ver a diferença da velocidade, pode ter certeza que iria dizer: [Ô]Meu problema era DAO e ACCESS[Ô]
E nao estou conseguindo trazer resultados em busca por data.
SQL = [Ô]select * from agenda where format(data, [ô]dd-mm-yyyy[ô]) = [ô][Ô] & Format(Date, [Ô]dd-mm-yyyy[Ô]) & [Ô][ô] order by hora[Ô]
A data do meu pc esta igual a data gravada no banco.