Difference between revisions of "Databases/pt"

From Lazarus wiki
Jump to navigationJump to search
 
(11 intermediate revisions by one other user not shown)
Line 5: Line 5:
 
== Introdução ==
 
== 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 faltlando. Então você precisaria reinstalar o Lazarus porque desinstalar os componentes fica impossível.
+
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 ===
 
=== Table 1 ===
Line 41: Line 41:
 
|}
 
|}
  
== The bindings to the database-clients ==
+
== As amarrações para os clientes de bancos de dados ==
  
If you want to use one of the databases-client libraries, those libraries has to be installed. Not only on the computer where you're programming on, but also on the computes where the application must run at. Note that some databases (in particular MySQL) only work if the bindings which are compiled in the application are from the same version as those of the installed libraries. How to install those libraries (.so files on *nix systems, and .dll's on windows) you can find on the website of the database-developers. The binding units can be found in the packages/base directory in the fpc-sources. They basically consist of the client-api calls like mysql_connect_database, which are completely different for each database. It is possible to write database applications using these units, but it is most often far more work and bug-sensitive then using the DB-unit Lazarus components.
+
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.
  
Most of these bindings-packages are hard-linked to the client-libraries. This means that if the application is compiled with one of these units in it, the whole application can not be linked if the client libraries are not available on the workstation. This means that if you do not have installed - by example - MySQL on your computer, and you are using the mysql4.pp unit in your program. The program woud not link. If you succeed to compile the program on a computer which has MySQL installed, it still won't even start on any other workstation without the appropriate MySQL-libraries.
+
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.
  
To avoid such problems some of the packages are also able to link dynamical to the libraries. Before any calls to those libraries can be made, the unit has to be 'initialized'. This initialization fails if the database-client isn't installed on the computer. If the program is ready using the client-library, the unit has to be 'released'.
+
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;
  
== Additional informationen about Lazarus and databases ==
+
== Informação adicional sobre o Lazarus e bancos de dados==
  
 
* FAQ: [[Lazarus DB Faq|Lazarus database FAQ]]
 
* FAQ: [[Lazarus DB Faq|Lazarus database FAQ]]
 
* Tutorial: [[Lazarus Database Tutorial]]
 
* Tutorial: [[Lazarus Database Tutorial]]
 
* MySQL: [[MySQLDatabases]]
 
* MySQL: [[MySQLDatabases]]
* Firebird: [[Firebird in action]]
+
* Firebird: [[Firebird]]
  
== Database packages contained in Lazarus ==
+
== Pacotes de bancos de dados contidos no Lazarus ==
  
 
=== sqldblaz.lpk ===
 
=== sqldblaz.lpk ===
This package provides access to different databases (e.g. MySQL or Interbase/Firebird). The components Komponenten (TSQLQuery, TSQLTransaction, TIBConnection, TODBCConnection, TOracleConnection, TMySQL40Connection, TMySQL41Connection, TMySQL50Connection, TPQConnection) are on the 'SQLdb' tab in the component palette.
+
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 ===
 
=== dbflaz.lpk ===
This package provides access to dBase and FoxPro databases. You can get more information in the [[Lazarus Tdbf Tutorial]]. The TDbf component is on the 'Data Access' tab in the component palette.
+
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 ===
 
=== interbaselaz.lpk ===
This package provides access to Interbase and Firebird databases. The components are similar to Delphi but far from Delphi complexity  (only e components included: TIBDatabase, TIBTransaction, TIBQuery). Furthermore these components allow only a read only access. The package must be installed manually. It depends on an installed gds32.dll file (under Windows). If you install the package without this file, Lazarus fails to start. The components are on the 'Interbase' tab in the component palette.
+
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 ===
 
=== sqlitelaz.lpk ===
This package provides access to SQLite databases. You can get more information in the [[Lazarus Database Tutorial]].
+
Este pacote provê acesso a bancos de dados SQLite. Você pode obter mais infomações em [[Lazarus Database Tutorial]].
  
 
=== sdflaz.lpk ===
 
=== sdflaz.lpk ===
The component TSdfDataSet can be found on the 'Data Access' tab in the component palette.
+
O componente TSdfDataSet pode ser encontrado na aba 'Data Access' da paleta de componentes.
  
== External packages / libraries ==
+
== Pacotes externos / bibliotecas ==
  
=== Zeos library ===
+
=== Biblioteca Zeos ===
This library provides access to different databases. Information about the interaction between Zeos and Lazarus can be found in the [[Zeos tutorial]].
+
Esta biblioteca provê acesso a diferentes bancos de dados. Informações  sobre a interação Zeos e Lazarus podem ser encontradas em [[Zeos tutorial]].
  
=== Pascal Data Objects ===
+
=== Objetos de dados Pascal ===
There is now an alternative. The functions introduced with MySQL 4.1 and 5.0 like prepared statements, binding, and stored procedures are supported by database API called Pascal Data Objects, which is inspired by PHP Data Objects. All the code and documentation necessary to use this new API is available on Sourceforge:
+
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:
  
 
http://pdo.sourceforge.net
 
http://pdo.sourceforge.net
  
Jan 30, 2007: PDO has added drivers for Firebird 1.5 and Firebird 2.0
+
Jan 30, 2007: PDO adicionou drivers para Firebird 1.5 e Firebird 2.0
  
 
=== TPSQL ===
 
=== TPSQL ===
These components provide access via TCP/IP to PostgreSQL databases. You can find more information on [[TPSQL|this page]].
+
Estes componentes provêem acesso via TCP/IP a bancos de dados PostgreSQL. Você pode encontrar mais informações em [[TPSQL|this page]].
  
 
=== FIBL ===
 
=== FIBL ===
These components provide access to Interbase and Firebird databases. The homepage is [http://sourceforge.net/projects/fibl http://sourceforge.net/projects/fibl].
+
Estes componentes provêem acesso a bancos de dados Interbase e Firebird. A página é [http://sourceforge.net/projects/fibl http://sourceforge.net/projects/fibl].
  
 
=== FBLib Firebird Library ===
 
=== FBLib Firebird Library ===
 +
[http://fblib.altervista.org/ FBLib] é uma biblioteca open source. Nenhum Data Aware para acesso direto a Firebird Relational Database de Borland Delphi / Kylix, Freepascal e Lazarus.
  
[http://fblib.altervista.org/ FBLib] is an open Source Library No Data Aware for direct access to Firebird Relational Database from Borland Delphi / Kylix, Freepascal and Lazarus.
+
As características atuais incluem:
  
Current Features include:
+
* Acesso Direto a Firebird 1.0.x 1.5.x Classic ou SuperServer
 
+
* Multiplataforma [Win32,Gnu/Linux,FreeBSD)
* Direct Access to Firebird 1.0.x 1.5.x Classic or SuperServer
+
* Seleção automática de biblioteca-cliente 'fbclient' ou 'gds32'
* Multiplatform [Win32,Gnu/Linux,FreeBSD)
+
* Query com params
* Automatic select client library 'fbclient' or 'gds32'
+
* Suporte a SQL Dialect 1/3
* Query with params
+
* Acordo de Licença LGPL
* Support SQL Dialect 1/3
 
* LGPL License agreement
 
 
* Extract Metadata
 
* Extract Metadata
 
* Simple Script Parser
 
* Simple Script Parser
* Only 100-150 KB added into final EXE
+
* Somente 100-150 KB adicionados ao final do EXE
* Support BLOB Fields
+
* Suporte a BLOB Fields
* Export Data to HTML SQL Script
+
* Exportção de dados para HTML SQL Script
 
* Service manager (backup,restore,gfix...)
 
* Service manager (backup,restore,gfix...)
 
* Events Alerter
 
* Events Alerter
  
You can download documentation on [http://fblib.altervista.org/ FBLib's website].
+
Você pode baixar a documentação em[http://fblib.altervista.org/ FBLib's website].
  
 
=== TechInsite Object Persistence Framework (tiOPF) ===
 
=== TechInsite Object Persistence Framework (tiOPF) ===
More informationen about tiOPF can be found on this [[tiOPF|page]].
+
Mais informações sobre tiOPF podem ser encontradas em [[tiOPF|page]].
  
 
=== LazReport ===
 
=== LazReport ===
The homepage of the report generator is [http://lazreport.sourceforge.net/ http://lazreport.sourceforge.net/].
+
A página do gerador de relatórios é [http://lazreport.sourceforge.net/ http://lazreport.sourceforge.net/].
More informationen (et al. an additional link) can be found [[Projects_using_Lazarus#LazReport| here]].
+
Mais informações e um link adicional podem ser encontradas [[Projects_using_Lazarus#LazReport| aqui]].
LazReport depends on the Printer4Lazarus package.
+
O LazReport depende do pacote Printer4Lazarus.

Latest revision as of 01:25, 27 October 2015

Deutsch (de) English (en) español (es) français (fr) italiano (it) 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

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:

http://pdo.sourceforge.net

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.