USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  VB6: Jet40 vs Firebird 1.5 (Uma comparação)
PC2
não registrado
ENUNCIADA !
Postada em 05/10/2004 09:01 hs   
"
Olá pessoal,
 
este bem que poderia ser chamado de um artigo, porém, como é um carater comparativo entre a facilidade e a forma de usa destes dois bancos de dados o JET 40 (conhecido como ACCESS 2000 ou superior) e o Firebird. Eu passei os últimos 40 dias utilizando o Firebird (FB) e cheguei a conclusão que irei colocar abaixo.
 
Para comparar utilizarei os seguintes critérios: Potência do banco de dados, Código de acesso, Tamanho da instalação, Velocidade de acesso, facilidade de configuração do banco.
 
Vamos lá então...
 
1) Potencia da base: Talvez você não tenha noção do que é um banco de dados cliente/servidor como o FB é. Neste ponto há uma vantagem abissal entre o FB e o JET40, eu poderia nomear as seguintes para o FB:
1) O banco pode crescer facilmente mais de 200 vezes a mais(300GB) que o tamanho máximo do JET40 (2GB)
2) O FB gerencia concorrencia (acesso simultâneo) a base sem gerar erros e + rápido.
3) O banco no servidor pode ser localizado através da rede TCP SEM precisar fazer um compartilhamento (tem uma porta só pra ele)
4) O banco tem inúmeros recursos para desviar o processamento da estação e centralizar no servidor reduzindo tráfego na rede por exemplo, etc.
 
Para o JET40 a única vantagem eu diria é o tamanho da instalação e a facilidade de configuração da base.
2) Códigos de acesso: Para que usa JET com DAO, a abertura da base de dados se dá em poucas linhas a saber como exmplo temos:
Dim DB as Database
Dim RS as Recordset
Set DB = Opendatabase("C:DB.MDB")
Set RS = DB.OpenRecordset("Clientes")
Print RS!Nome
DB.Close
Com o FB precisei criar um código diferente usando ADO, no meu caso ficou assim:
Sub OpenDB(Opencon As ADODB.Connection)
Dim Banco As String
    Banco = "D:TrabalhosSPLDATA.FDB"
   
    Opencon.ConnectionString = "Provider=SIBPROvider.2;Password=masterkey;User ID=SYSDBA;Data Source=" & Banco & ";Persist Security Info=False"
    Opencon.Properties("SIB:Cache Schemas").Value = 1
    Opencon.Open
End Sub
 
Sub OpenRS(RS As Recordset, SQLstr As String, Conec As ADODB.Connection)
    RS.Source = SQLstr
    RS.LockType = adLockOptimistic
    RS.ActiveConnection = Conec
    RS.CursorType = adOpenDynamic
    RS.Open
End Sub
Você deve estar achando estranho esta STRING de conexão, é que eu utilizo uma DLL externa para fazer a compatibilidade entre o ADO e o FB que é esta DLL que não é free.
 
3) Tamanho da Instalação: Eu criei um aplicativo de controle de estoque. Utilizando o FB e a forma de configuração do banco que expliquei a instalação ficou com 10,1 MB para o FB e 3,9MB para o JET40. Esta disparidade se deve a obrigatoriedade de acrescentar o MDAC_TYP.EXE para configurar o ADO (desde que vc tenha certeza que seu cliente tenha o 2000 ou XP vc é obrigado a enviar)
 
4) Velocidade de acesso : Aqui o Tekki andou fazendo tetes e, em termos de velocidade há um empate técnico desde que não haja concorrência. Fica claro também que, em uma rede com muitos terminais o FB leva vantagem pois vc pode tirar o processamento dos terminais e centralizar no servidor através de recursos que só existem em bases do tipo SGDB como é o caso de SP(Stored Procedures, como um validador de CNPJ dentro da base por ex.) e triggers (gatilhos disparados em determinadas situações). O JET40 em rede com mais de 5 terminais se atrapalha demais fora o alto risco de corrupção de dados.
 
5) Configuração da Base de Dados: Aqui a vantagem é total para o JET, pois basta copiar umas dll's e registrar as mesmas que o banco funciona. Já o FB não.
Nos meus testes este foi um gargalo. O banco mostrou-se muito "carente", ou seja, precisa de um técnico perto dele
 
Vou mostrar como fiz o sistema de instalação:
1º Instalei o FB peo seu instalador e depois compactei o seu diretório num ZIP chamado BASE.ZIP, este arquivo ficava no path do exe.
2º chamo esta função (Suprimi o código para extrair o ZIP, OK)
Sub InstalaFB()
    On Error Resume Next
    D:mdac_typ.exe /q /C:"setup /QNT"
    If Dir$(App.Path & "Firebird", vbDirectory) = "" Then MkDir App.Path & "Firebird"
EXTRAI_ZIP BASE.ZIP, App.Path & "Firebird"
    FileCopy App.Path & "FirebirdBinFBClient.dll", GetWS & "FBClient.dll"
    FileCopy App.Path & "FirebirdBinGDS32.dll", GetWS & "GDS32.dll"
    ChDrive Left(App.Path, 2)
    ChDir App.Path & "FirebirdBin"
    s = Shell(App.Path & "FirebirdBininstreg.exe", vbMinimizedFocus)
    If GetWindowsVersion = True Then 'NT
        s = Shell(App.Path & "FirebirdBininstall_super.bat", vbMaximizedFocus)
    Else
        s = Shell(App.Path & "FirebirdBinfbguard.exe", vbMaximizedFocus)
    End If
    If Err = 0 Then
        MsgBox "Firebird Instalado.", vbInformation
    Else
        MsgBox "FB install " & Error$, vbCritical
    End If
End Sub
Existem outros processos para configurar o FB, pelo inno setup po ex., mas eu testei todos e nenhum se mostrou 100%. O código acima foi o único que fez a base funcionar em um micro tanto com XP como com w95/98.
Porém, a SIBPro (dll q custa U$ 30,00) mostrou-se instável, as vezes registrava normal, as vezes dava erro de registro e não rodava mais, e misteriozamente ela não achava o FB mesmo este estando rodando 100%.
 
Minha Conclusão: Não quero aqui gerar nenhuma polêmica. Só quero alertar a vc que quer migrar para uma base mais potente.
O FB é muito superior ao JET, mas o JET também é muito superior ao FB, depende do ponto de vista
 
Se você for fazer um programa´para ser distribuido, ou que irá utilizar um pequeno volume de dados, use o JET. Se seu sistema for manipular muitos dados, ou ser usado em muitos terminais (eu diria em mais de 5), use o FB.
 
Porém o FB prenderá o cliente mais a você pois tem detalhes que o cliente não sabe configurar.
 
Em fim, FB e JET tem suas diferenças, e cabe a vc programador escolher entre os dois.
Um abraço e não perca o mesmo tempo que eu perdi pra chegar nesta conclusão Emoções
"
   
Rochª
Pontos: 2843 Pontos: 2843 Pontos: 2843
RIO DE JANEIRO
RJ - BRASIL
ENUNCIADA !
Postada em 05/10/2004 09:45 hs            
PC2 Muito obrigado pela aula. Emoções
Esclareceu muitas duvidas.
 
O que mais me preocupa com o FB não é a velocidade, ou qualquer coisa ligada a programação e sim a sua continuidade. Sem a Borland por traz e com o grande atraso do lancamento da ultima versao. Fico meio apreensivo. Imagine se voce faz um sistema e o banco descontinua. Ja tive problemas assim com o toolbox da propria borland. Não houve nem uma ferramente para converter o banco toolbox para o novo produto (paradox).
 
Acho que tambem tem que se levar em consideracao o 'por tras' dos produtos. Pois o JET tem a microsoft e o FB. Não estou jogando areia pois voce sabe que estou tambem querendo trocar o JET por todas as razoes que voce ja citou acima e ja chegei a testar o FB e estou aguardando o postgreesql para windows.
 
So gostaria de esclarecer mais esses pontos

__________________________________________________________________________
Qualquer coisa post
 
Emoções
Rochª
   
PC²
Pontos: 2843 Pontos: 2843
JUCUTUQUARA, VITÓRIA
ES - BRASIL
ENUNCIADA !
Postada em 05/10/2004 10:57 hs            
É verdade Rocha, o suporte do FB é meio duvidoso. É fato que existem uns sites para o fb com alguns artigos mas náo chega a surpreender pois o MSDE tem mais de 1.1 GB de ajuda fora as centenas de forums VB/ACCESS por aí.
 
Uma coisa que esqueci de mencionar é que o ADO NET gerencia concorrencia, está no site de MS.
 
 

____________________________

PC²   T+

 

   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página