(
"Poor" English version)
Como resultado de uma experiência com a API do Firebird e a recém
lançada API DBX4 para Delphi 2007, criei um driver DBX4 para
Firebird. Ele suporta todos os tipos de campos do Firebird.
Artigo de capa da revista Active Delphi Edição 53. "...Neste artigo Thiago Souza mostra um driver que está surgindo com força total, o TBODBXFB. Este driver consiste em um acesso limpo e sem erros ao Firebird para ser utilizado no RAD Studio 2007."
Bom, não tenho certeza a respeito do 'sem erros', mas continuo corrigindo os erros reportados pelos usuários.
Foram feitos pouquíssimos um pouco mais de testes em aplicativos convertidos do Delphi 7. Se encontrar algum erro, por favor notifique no e-mail no final da página.
Existe uma aplicação, desenvolvida por mim, em produção usando o driver, sem problemas relatados.
Como não tenho solicitações de novas funcionalidades, não tenho também um roadmap, nem data para novas versões. Mas estou atento e disposto a ouvir sobre novas necessidades.
Continuarei distribuindo o driver como um freeware, sem fontes. Se você precisa do código fonte ou de suporte para o driver, por favor, entre em contato. Tenho compromisso de mantê-lo, pois tenho aplicações distribuídas que o usam.
Só pode ser utilizado com Delphi2007, DBX4.
1. Ao executar o aplicativo no Delphi, o debugger acusa um problema
com um breakpoint na ntdll.dll, famoso na internet como erro INT3.
Para que ele deixe de incomodar, marque a opção 'Ignore non user breakpoints' do seu delphi (Muito Obrigado Leonel Togniolli), ou adicione esta unit ao projeto.
2. O driver não quer trabalhar em .Net. Não tenho idéia do porque, a não ser que aparenta ser falha de memória. Imagino que seja inexperiência minha com a plataforma. Ou porque estou compilando com o MinGW/VC++8.
O driver agora suporta .Net.
3. Se você ligar o trace, vai perceber que alguns parâmetros passados para a conexão também não são tratados, ainda.
4. "Runtime Error (at: 1:4131): Error on line 0, position 0: The system cannot locate the object specified." Verifique se o arquivo DataExplorer.exe.config existe e se ele está preenchido corretamente. É conhecido que algumas atualizações do RAD Studio corrompem o mesmo.
5. "Não foi possível localizar o ponto de entrada do procedimento @Dbxtablestorage@TDBXDefaultRowStorage@CopyColumns$qqrv na biblioteca de vínculo dinâmico DBXReadOnlyMetaData100.bpl" O instalador da versão 0.2 foi compilado com o December update da Code Gear instalado. Verifique se você instalou o mesmo.
6. "Access violation" ao abrir um TSQLConnection, em uma máquina onde o Delphi não esteja instalado: Problema na distribuição do driver. Leia a seção 'Como distribuir o driver'.
22/07/2008 - Corrigido problema de gravação em campos ARRAY (Muito obrigado à Sertak Akyuz)
21/07/2008 - Corrigido problema de gravação em campos TIME (Muito obrigado à Douglas)
21/07/2008 - Corrigido erro "Update affected more than 1 record." ao atualizar registros (Obrigado a Arthur ACCL)
21/07/2008 - Corrigido problema ao usar TSQLStoredProc para executar procedure sem parâmetros ou que não retornam dados
08/06/2008 - Corrigido Access Violation ao chamar DBXCommand_GetRowsAffected com comandos DDL (Muito obrigado à Eduardo Tec-Soft)
08/06/2008 - Adicionado suporte a TSQLStoredProc (Muito obrigado à John Hodgson)
08/06/2008 - Adicionado suporte a TSQLDataSet (Muito obrigado à Pablo Bueno)
14/05/2008 - Corrigido Congelamento da IDE com Windows Vista ao abrir conexão (Muito obrigado à Cesar Romero)
14/05/2008 - Corrigido Access Violation ao abrir duas conexões, uma com o driver Interbase e outra com o TBODBXFB.
14/05/2008 - Corrigido erro ao fechar SQLQuery logo após o Commit de uma Transação. (Sequencia: Close/Open/Commit/Close/Open)
04/03/2008 - Corrigido retorno incorreto do tamanho de campo VARCHAR.
04/03/2008 - Corrigida a transação Read Commited para usar a opção isc_tbp_nowait ao invés de isc_tbp_wait.
27/02/2008 - Loop infinito ao fechar a conexão (TSQLConnection.Close) (Muito obrigado à Luiz Henrique Auer)
27/02/2008 - Access violation quando não especificado DriverName=TBODBXFB em TSQLConnection.Params. (Muito obrigado à Luiz Henrique Auer)
14/02/2008 - Adicionado suporte a plataforma .Net
14/02/2008 - Adicionado suporte ao Data Explorer
14/02/2008 - Corrigido problema com transações (Muito Obrigado Luiz Henrique Auer)
14/02/2008 - Correção do tratamento de parametros do tipo ftDate
14/02/2008 - Ajustes no instalador para detectar a pasta onde fica os arquivos .ini do dbExpress
14/02/2008 - Correção de outros "pequenos" problemas
30/01/2008 - Criado instalador do driver
30/01/2008 - Chaves no arquivo dbxdrivers.ini estavam incorretas, impossibilitando a conexão (Muito Obrigado Luciano Pimenta)
1. Adicionar a unit que carrega o driver ao projeto (TBODbxDynalink) ou marcar a opção 'Build with runtime packages' e adicionar o pacote TboDbxNative na lista de packages.
2. Distribuir os arquivos dbxdrivers.ini e dbxconnections.ini da seguinte maneira:
2.1 O arquivo dbxdrivers.ini precisa ser distribuído e deve ter duas seções: [Installed drivers] e [TBODBXFB]. Veja este arquivo pronto para ser distribuído.
2.2 O arquivo dbxconnections.ini pode estar vazio, mas o Framework DBX4 procura por ele.
2.3 Estes arquivos devem estar no diretório do programa ou no caminho definido na chave HKEY_CURRENT_USER\Software\Borland\BDS\5.0\DBExpress\, nas entradas 'Driver Registry File' e 'Connection Registry File' (Exigência do DBX4).
3. Distribuir o arquivo tbodbxfb.dll na pasta do programa ou no path do sistema.
A partir da versão 0.6 RC 2 foi preciso usar a função TRIM, para mostrar corretamente os campos/parâmetros nos objetos TSQLDataSet e TSQLStoredProc. A função TRIM está disponível nas versões mais recentes do Firebird (2.0, 2.1), mas não na versão 1.5. É nessário declarar a função TRIM, disponível na instalação padrão do Firebird 1.5. Execute o seguinte comando no banco de dados antes de usar a base com o driver:
DECLARE EXTERNAL FUNCTION trim
CSTRING(255)
RETURNS CSTRING(255) FREE_IT
ENTRY_POINT 'IB_UDF_ltrim' MODULE_NAME 'ib_udf';
Thiago Borges de Oliveira
thborges at gmail
7368 desde 25/01/2008.