Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
CodeDatabaseDelphiNotíciaRAD Studio

Você está usando a alternativa secreta ao SQLite?

pexels-cottonbro-4709289

Eu sei a melhor maneira de traumatizar um desenvolvedor de software que já usa Delphi há algum tempo. Você acabou de mostrar a eles esta imagem:

bde-config

O gerente de administração do BDE. Tantas horas ‘felizes’ tentando resolver mensagens de “PDOXUSERS.NET está em uso” e aprendendo tudo sobre o propósito de configurações misteriosas como SharedDir e NETDIR. Estremecimento. Se você quisesse armazenar um banco de dados acessado via BDE em uma unidade de rede, havia um monte de coisas que você teria que fazer para ter certeza de que ele não fosse corrompido. Apesar disso, os desenvolvedores se tornaram especialistas em reparar a corrupção do banco de dados Paradox. As coisas estavam bem desanimadoras, embora para sua defesa esta fosse uma época em que quase tudo que hoje consideramos garantido ainda estava em seus estágios iniciais; a discagem era comum (e errática) e quase todo mundo tinha pelo menos um CD da AOL como porta-copos.

Por que as pessoas usaram o BDE se ele tinha tantos problemas?

Bem, a resposta curta foi: funcionou. Na verdade, depois de configurá-lo, ele funcionou muito bem e foi extremamente fácil de usar. Ele permitiu que você se conectasse a vários bancos de dados como DBase e Paradox de uma forma simples. Tão simples que o Paradox se tornou uma tecnologia de banco de dados não SQL de fato junto com o DBase, que tinha seus próprios problemas.

SQLite, o kit de ferramentas universal

Junto com a arena pré-Windows, o SQLite se desviou. Ele foi projetado desde o início como um banco de dados simples que permitiria que comandos do tipo SQL fossem executados em um conjunto de tabelas contidas em um único arquivo ‘plano’. Ele tinha – e ainda tem – limitações e peculiaridades como AUTOINC colunas não serem iguais a ROWID colunas, ou o fato de não ter nativos DATETIME ou BOOLEANtipos.


Ah, e como PostgreSQL, um nome que ainda me confunde quando tenho que dizê-lo em voz alta, o nome SQLite é irritante. Luz Seequal; não deveria ser pronunciado “seequal ite”?

Apesar disso, tornou-se extremamente popular.

Qual é a alternativa nativa secreta do Delphi ao SQLite?

Escondido em plena vista está um sistema de banco de dados bastante impressionante que substitui quase completamente o SQLite para aplicativos de desktop escritos em Delphi e C ++ Builder. Este banco de dados é Absolute Database do Technology Partner Component Ace.

screenshot-2021-06-06-162255

 

Por que o Absolute Database não é mais conhecido?


Por alguma razão, o Absolute Database não capturou a imaginação dos desenvolvedores Delphi da mesma forma que outros sistemas. Não tenho certeza do porquê.

No meu ‘trabalho diário’, usamos Absolute Database para um produto desktop – que também pode ser multiusuário e com os dados armazenados em um servidor de rede. Esse produto de desktop tem cerca de 10.000 instalações individuais. Como qualquer banco de dados de arquivo simples, as pessoas fazem coisas malucas, como experimentar powercuts no meio dos dados sendo gravados ou alguma malevolência maliciosa chamada “Windows Updates” destrói o servidor e reinicializa com um pouco menos de graça do que a documentação da API do Windows poderia sugerir. Na inicialização do aplicativo, o banco de dados Absolute Database recupera silenciosamente e repara automaticamente qualquer dano, sem a necessidade de intervenção do usuário.

É experimentado e testado para nós. Nosso perfil de cliente típico para a versão desktop de nossos produtos são empresas de pequeno e médio porte e a onipresente ‘loja familiar’. Temos produtos cliente-servidor também que usam RDBMS completos, como MySQL e PostgreSQL, mas a linha de produtos que usa o banco de dados Absolute é projetada para ser fácil para usuários “regulares” instalarem e usarem, sem a necessidade de administradores de banco de dados, equipe técnica ou, em muitos casos, nenhuma rede adequada e equipe de TI de atendimento.

Minha lista dos principais recursos do Absolute Database

  • Arquivo único para cada banco de dados. Observe que seus aplicativos podem usar vários bancos de dados simultaneamente se você escolher – fazemos isso com um para dados locais e / ou temporários voláteis e outro para dados compartilhados e em rede.
  • O banco de dados Absolute vem em dois ‘sabores’ – a edição pessoal é para um único usuário acessando os dados; a versão multiusuário permite que o desenvolvedor marque uma caixa permitindo acesso compartilhado multiusuário e multi-cliente do mesmo arquivo de banco de dados com todos os tipos de mecanismos de bloqueio que você esperaria.
  • Destina-se diretamente como substituição BDE e alternativa SQLite sem qualquer necessidade de drivers ou vinculação de bibliotecas estáticas de DLLs.
  • Totalmente escrito em Delphi e tudo o que é necessário para acessar o banco de dados é integrado ao seu código, então não há nada para implantar com seus aplicativos além do banco de dados.
  • Ao contrário do SQLite, ele suporta TODOS os tipos de dados que você esperaria, como DATETIMEBOOLEAN e assim por diante (ambos ausentes do SQLite), bem como chaves, índices e, bem, tudo realmente incluindo campos de incremento automático e outras normas semelhantes para um banco de dados relacional.
  • Autorreparável. No caso de detecção de corrupção, o sistema Absolute Database se repara e se recupera automaticamente.
  • É TDatabaseTDataSource e outro componente de acesso a dados compatível. Por causa disso, tudo que pode ser vinculado a um TDatasource funcionará, como componentes de relatório, grades de terceiros e assim por diante.
  • Muito econômico, sem royalties ou taxas de implantação e tem o código-fonte Delphi completo disponível. Pague uma vez e pronto.
  • Funciona em quase todas as versões do Delphi que você poderia possuir desde o Delphi 4 até os dias de hoje. Você também só precisa da Professional Edition e ela funciona na atual Delphi Community Edition.

Existe um desktop de banco de dados equivalente para o Absolute Database?


Não apenas existe um equivalente ao venerável Database Desktop, mas o Component Ace também fornece o código-fonte completo para ele. Este aplicativo serve como uma ótima ferramenta para criar, consultar e manter bancos de dados com base no formato Absolute Database, mas também é uma ótima ferramenta de referência sobre como acessar os dados e executar várias funções não óbvias, como criar ou reparar tabelas de banco de dados em tempo de execução.

 

screenshot-2021-06-06-162603
Absolute Database – ferramenta de gerenciamento de banco de dados

 

Onde obter o banco de dados Absolute

Você pode encontrar o Absolute Database no site oficial do Component Ace aqui: https://www.componentace.com/bde_replacement_database_delphi_absolute_database.html

Quais são os principais recursos do Absolute Database e por que ele é semelhante ao SQLite?


Como o SQLite, o banco de dados Absolute armazena todas as tabelas em um único arquivo. Este arquivo pode residir em seu disco rígido local ou em um compartilhamento de rede. Por padrão, os arquivos de banco de dados Absolute terminam com uma extensão de arquivo “.abs”, embora na realidade eles possam ser chamados de qualquer nome.

Os principais recursos do Absolute Database listados pelo Component Ace são os seguintes

  • Sem BDE; sem DLLs
  • Banco de dados de arquivo único
  • Suporte a SQL’92 (DDL e DML)
  • Compatível com controles de banco de dados padrão e de terceiros
  • Modo de usuário único e multiusuário (servidor de arquivos)
  • Funciona em todas as versões do Windows e não requer nenhuma atualização ou service pack
  • Mesas na memória ultrarrápidas
  • Facilidade de uso incomparável
  • Criptografia forte
  • Compressão BLOB
  • Grátis para uso pessoal
  • Código fonte completo disponível
  • Distribuição livre de royalties

Absolute Database evita o inferno de DLL

Para mim, o benefício foi a falta de qualquer forma de drivers ou arquivos adicionais para implantar com o aplicativo, mantendo a TDatasource compatibilidade total . A funcionalidade do banco de dados é compilada diretamente em seu aplicativo e, no que me diz respeito, tem a vantagem adicional de tornar seus programas imunes ao que costumávamos chamar de “inferno de DLL”, onde dlls de driver compartilhados e SDKs no computador host eram atualizados por outro aplicativo que usava o mesmo SDK e dlls de banco de dados ou por uma atualização ou patch do sistema operacional.

Com a abordagem “tudo em seu exe” usada pelo banco de dados Absolute, a pequena quantidade de sobrecarga do código de acesso ao banco de dados compilado é facilmente compensada pela vantagem de significar que seu aplicativo tem imunidade à prova de balas contra esses tipos de catástrofes ambientais de computador que ainda persistem até hoje para situações como aplicativos que acessam MySQL; onde as coisas dão inexplicavelmente errado ao tentar se conectar ao servidor MySQL e depois de muito puxar o cabelo e alugar roupas, parece que há mais de um “libmysql.dll” no sistema e, além disso, seu aplicativo de 32 bits está tentando carregar um Biblioteca de 64 bits ou vice-versa.

 

screenshot-2021-06-06-162929
Absolute Database no RAD Studio Delphi IDE

Experimente Grátis

A versão pessoal e não multiusuário do Absolute Database é gratuita para uso pessoal, então você não precisa acreditar na minha palavra (embora o Component Ace não tenha nenhuma conexão direta comigo e não tenha contribuído para este artigo – minhas opiniões são meu próprio). Tente comparar o Absolute Database para você mesmo com o SQLite e veja como você se sai. Se você quiser ir mais longe, provavelmente terá que pagar pela versão comercial que adiciona coisas como acesso ao código-fonte completo e a capacidade de executar multiusuário, mas a essa altura, você, como eu, deve estar se perguntando por que é o banco de dados secreto mais bem guardado da Internet.


Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

2 Comentários

Deixe uma resposta para Ian BarkerCancelar resposta

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

IN THE ARTICLES