Databases/pt
│
Deutsch (de) │
English (en) │
español (es) │
français (fr) │
italiano (it) │
日本語 (ja) │
português (pt) │
русский (ru) │
中文(中国大陆) (zh_CN) │
Work in progress..
Introdução
Esta página será uma introdução ao tópico "Lazarus e Banco de Dados". A tabela seguinte provê uma visão geral sobre os bancos de dados que recebem suporte. Ela precisa ser atualizada logo porque é baseada no tempo em que o FPC 1.9.7 foi publicado. Uma dica: você deve somente instalar os componentes de bancos de dados para os quais você tem as bibliotecas-cliente instaladas (se o banco de dados precisar de bibliotecas-cliente). Senão pode acontecer que o Lazarus falhe ao iniciar, por causa de arquivos faltando. Então você precisaria reinstalar o Lazarus porque desinstalar os componentes seria impossível.
Table 1
Database | Package name | Need client lib? | Need server? | Supported versions | Supported platforms |
---|---|---|---|---|---|
Textfiles | sdf | No | No | - | All |
In memory | memds | No | No | - | All |
DBase | DBFLaz | No | No | III+, IV, VII | All |
FoxPro | DBFLaz | No | No | - | All |
Paradox | TParadoxDataSet | No | No | up to Table Level 7 (and up ??) | All |
SQLite | SQLite | Yes | No | - | - |
MySQL | SQLdb | Yes | Yes | 3 - 4.0 | i386: Linux, Win32 |
Firebird | IBase | Yes | Yes | 1 - 1.5 | i386: Linux, Win32 |
PostgreSQL | SQLdb | Yes | Yes | 6.6 - 8 | i386: Linux, Win32 |
ODBC | ODBC | Yes | Depends | - | i386: Win32 |
Interbase | IBase | Yes | Yes | 4 - 6 | i386: Linux, Win32 |
Oracle | SQLdb | Yes | Yes | - | - |
As amarrações para os clientes de bancos de dados
Se você quiser usar uma das bibliotecas de cliente de bancos de dados, suas bibliotecas precisam ser instaladas. Não só no computador em que você está fazendo o seu programa, mas também nos computadores em que os programas vão ser executados. Note que alguns bancos de dados (em particular MySQL) só funcionam se as amarrações que são compiladas na aplicação são da mesma versão que a das bibliotecas instaladas. Como instalar esta bibliotecas (arquivos .so em sistemas *nix, e .dll's em Windows) você pode encontrar no website dos desenvolvedores dos bancos de dados. As unidades amarradas podem ser encontradas no diretório packages/base dos fontes do FPC. Eles consistem basicamente de chamadas de API-cliente como mysql_connect_database, que são completamente diferentes para cada banco de dados. É possível escrever aplicações de bancos de dados usando estas unidades, mas é most often far more work and bug-sensitive do que usar os componentes do Lazarus da unidade DB.
A maioria destes pacotes amarrados são hard-linked às bibliotecas-cliente. Isto quer dizer que se a aplicação é compilada com uma destas unidades, a aplicação inteira não pode vincular se as bibliotecas-cliente não estiverem disponíveis na estação de trabalho. Por exemplo, se você não tiver instalado o MySQL no seu computador estiver usando a unidade mysql4.pp no seu programa, o programa pode não vincular. Se você consegue compilar o programa em um computador que tem MySQL instalado, não vai nem iniciar em outra estação de trabalho sem as bibliotecas MySQL apropriadas.
Para evitar este tipo de problema alguns pacotes são também capazes de vincular dimanicamente as bibliotecas. Antes que chamadas a estas bibliotecas possam ser feitas, a unidade tem que ser 'inicializada'. Esta inicialização falha se o cliente de banco de dados não está instalado no computador. Se o programa já utilizou a biblioteca-cliente, a unidade precisa ser publicada;
Informação adicional sobre o Lazarus e bancos de dados
- FAQ: Lazarus database FAQ
- Tutorial: Lazarus Database Tutorial
- MySQL: MySQLDatabases
- Firebird: Firebird
Pacotes de bancos de dados contidos no Lazarus
sqldblaz.lpk
Este pacote provê acesso a diferentes bancos de dados (por exempo MySQL ou Interbase/Firebird). Os componentes (TSQLQuery, TSQLTransaction, TIBConnection, TODBCConnection, TOracleConnection, TMySQL40Connection, TMySQL41Connection, TMySQL50Connection, TPQConnection) estão na aba 'SQLdb' da paleta de componentes.
dbflaz.lpk
Este pacote provê acesso a bancos de dados dBase e FoxPro. Você pode achar mais informações no Lazarus Tdbf Tutorial. O componente TDbf está na aba 'Data Access' da paleta de componentes.
interbaselaz.lpk
Este pacote provê acesso a bancos de dados Interbase e Firebird. Os componentes são similares aos do Delphi mas longe da sua complexidade (componentes incluídos: TIBDatabase, TIBTransaction, TIBQuery). Estes componentes também permitem acesso somente-leitura. O pacote precisa ser instalado manualmente. Ele depende de um arquivo gds32.dll instalado (em Windows). Se você instalar o pacote sem este arquivo, o Lazarus falha ao iniciar. Os componentes estão na aba 'Interbase' da paleta de componentes.
sqlitelaz.lpk
Este pacote provê acesso a bancos de dados SQLite. Você pode obter mais infomações em Lazarus Database Tutorial.
sdflaz.lpk
O componente TSdfDataSet pode ser encontrado na aba 'Data Access' da paleta de componentes.
Pacotes externos / bibliotecas
Biblioteca Zeos
Esta biblioteca provê acesso a diferentes bancos de dados. Informações sobre a interação Zeos e Lazarus podem ser encontradas em Zeos tutorial.
Objetos de dados Pascal
Existe agora uma alternativa. As funções introduzidas com MySQL 4.1 e 5.0 como estamentos preparados, amarrações e procedimentos estocados são suportados pela API de bancos de dados chamada Pascal Data Objects, que é inspirada pelo PHP Data Objects. Todo o código e documentação necessária para usar esta nova API está disponível no Sourceforge:
Jan 30, 2007: PDO adicionou drivers para Firebird 1.5 e Firebird 2.0
TPSQL
Estes componentes provêem acesso via TCP/IP a bancos de dados PostgreSQL. Você pode encontrar mais informações em this page.
FIBL
Estes componentes provêem acesso a bancos de dados Interbase e Firebird. A página é http://sourceforge.net/projects/fibl.
FBLib Firebird Library
FBLib é uma biblioteca open source. Nenhum Data Aware para acesso direto a Firebird Relational Database de Borland Delphi / Kylix, Freepascal e Lazarus.
As características atuais incluem:
- Acesso Direto a Firebird 1.0.x 1.5.x Classic ou SuperServer
- Multiplataforma [Win32,Gnu/Linux,FreeBSD)
- Seleção automática de biblioteca-cliente 'fbclient' ou 'gds32'
- Query com params
- Suporte a SQL Dialect 1/3
- Acordo de Licença LGPL
- Extract Metadata
- Simple Script Parser
- Somente 100-150 KB adicionados ao final do EXE
- Suporte a BLOB Fields
- Exportção de dados para HTML SQL Script
- Service manager (backup,restore,gfix...)
- Events Alerter
Você pode baixar a documentação emFBLib's website.
TechInsite Object Persistence Framework (tiOPF)
Mais informações sobre tiOPF podem ser encontradas em page.
LazReport
A página do gerador de relatórios é http://lazreport.sourceforge.net/. Mais informações e um link adicional podem ser encontradas aqui. O LazReport depende do pacote Printer4Lazarus.