Difference between revisions of "Databases"
m (→Table 1: Clarified Firebird server) |
m (→Table 1: Changed table name) |
||
Line 9: | Line 9: | ||
This page will be an entrance to the topic 'Lazarus and databases'. The following table provides an overview about the supported databases. It needs to be updated soon, because it is based on the time when FPC 1.9.7 was released. '''Warning''': You should only install the database components for which you have the client libraries installed (if the database need client libaries). Otherwise Lazarus could fail to start because of missing files. You would then have no choice but to reinstall Lazarus, because uninstalling the component isn't possible. | This page will be an entrance to the topic 'Lazarus and databases'. The following table provides an overview about the supported databases. It needs to be updated soon, because it is based on the time when FPC 1.9.7 was released. '''Warning''': You should only install the database components for which you have the client libraries installed (if the database need client libaries). Otherwise Lazarus could fail to start because of missing files. You would then have no choice but to reinstall Lazarus, because uninstalling the component isn't possible. | ||
− | === | + | === Supported databases === |
{| BORDER="1" CELLSPACING="0" | {| BORDER="1" CELLSPACING="0" | ||
!STYLE="background:#ffdead;"|'''Database''' | !STYLE="background:#ffdead;"|'''Database''' |
Revision as of 09:58, 28 August 2011
│
Deutsch (de) │
English (en) │
español (es) │
français (fr) │
italiano (it) │
日本語 (ja) │
português (pt) │
русский (ru) │
中文(中国大陆) (zh_CN) │
Work in progress..
References:
Tutorials/practical articles:
Databases |
Introduction
This page will be an entrance to the topic 'Lazarus and databases'. The following table provides an overview about the supported databases. It needs to be updated soon, because it is based on the time when FPC 1.9.7 was released. Warning: You should only install the database components for which you have the client libraries installed (if the database need client libaries). Otherwise Lazarus could fail to start because of missing files. You would then have no choice but to reinstall Lazarus, because uninstalling the component isn't possible.
Supported databases
Database | Package name | Need client lib? | Need server? | Supported versions | Supported platforms |
---|---|---|---|---|---|
Textfiles | sdf | No | No | - | All |
In memory | memds | No | No | - | All |
In memory | bufdataset | No | No | - | All |
DBase | DBFLaz | No | No | III+, IV, VII | All |
FoxPro | DBFLaz | No | No | 2.0, 2.5, 3.0 (not completely) | All |
Paradox | TParadoxDataSet | No | No | up to Table Level 7 (and up ??) | All |
SQLite | SQLite | Yes | No | - | i386: Linux, Win32 |
MySQL | SQLdb | Yes | Yes | 3.0 - 5.1 | i386: Linux, Win32 |
Firebird | IBase | Yes | Depends1) | 1 - 2.5 | i386: Linux, Win32 |
PostgreSQL | SQLdb | Yes | Yes | 6.6 - 8 | i386: Linux, Win32 |
ODBC | SQLdb | Yes | Depends | 3.x 2) | i386: Linux, Win32 |
Interbase | IBase | Yes | Yes | 4 - 6 | i386: Linux, Win32 |
Oracle | SQLdb | Yes | Yes | - | - |
Advantage | TAdsDataSet | Yes | No | 10.1 and greater | i386: Linux, Win32 |
1) You can use an embedded version of Firebird on Windows at least (possibly on Linux/OSX with some tweaking), or you can connect to a Firebird server running on Windows/Unix/OSX/FreeBSD/other Firebird supported platforms
2) This version number refers to the ODBC standard, not to the version number of a driver or driver manager. There are ODBC 3.x drivers for most DBMSs.
The bindings to the database clients
If you want to use one of the databases that need client libraries, those libraries have to be installed. Not only on the computer you're programming on, but also on the computers where the application must run. 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. You can find out how to install those libraries (.so files on *nix systems, and .dlls on windows) 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 usually far more work and bug-sensitive than using the DB-unit Lazarus components.
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 your program executable will not be generated if you do not have installed - for example - a MySQL client on your computer, and you are using the mysql4.pp unit in your program. If you succeed in compiling the program on a computer which has the MySQL client libraries installed, it still won't start on any other machine without the appropriate MySQL client libraries. In other words: for these databases, you need to install client libraries on your development machine, and you need to install these client libraries with your application.
To avoid such problems some of the packages are also able to link dynamically 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'.
Database packages contained in Lazarus
sqldblaz.lpk
This package provides access to different databases (e.g. MySQL or Interbase/Firebird). The components (TSQLQuery, TSQLTransaction, TIBConnection, TODBCConnection, TOracleConnection, TMySQL40Connection, TMySQL41Connection, TMySQL50Connection, TPQConnection) are on the 'SQLdb' tab in the component palette.
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.
sqlitelaz.lpk
This package provides access to SQLite databases. You can get more information in the Lazarus Database Tutorial.
sdflaz.lpk
The component TSdfDataSet can be found on the 'Data Access' tab in the component palette.
lazreport.lpk
The homepage of the report generator is http://lazreport.sourceforge.net/. More informationen (et al. an additional link) can be found here. LazReport depends on the Printer4Lazarus package. With revision 11950 LazReport was included in the Lazarus SVN repository.
External packages / libraries
Zeos DataBase Objects
These components provide access to different databases. You can find more information here. This wiki also contains a Zeos tutorial.
Pascal Data Objects
There is now an alternative.
Support:
- MySQL 4.1 and 5.0
- sqlite-2 and sqlite-3
- pgsql-8.1
- interbase-5, interbase-6, firebird-1.0, firebird-1.5, firebird-1.5E, firebird-2.0, firebird-2.0E
- mssql (Microsoft library) and sybase (FreeTDS library)
- oracle
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:
TPSQL
These components provide access via TCP/IP to PostgreSQL databases. You can find more information on this page.
FIBL
These components provide access to Interbase and Firebird databases. The homepage is http://sourceforge.net/projects/fibl.
IBX
IBX For Lazarus are components to access Firebird databases: see IBX
FBLib Firebird Library
FBLib is an open Source Library No Data Aware for direct access to Firebird Relational Database from Borland Delphi/Kylix, Free Pascal and Lazarus.
Current Features include:
- Direct Access to Firebird 1.0.x, 1.5.x and 2.x Classic or SuperServer
- Multiplatform [Win32,Gnu/Linux,FreeBSD)
- Automatic select client library 'fbclient' or 'gds32'
- Query with params
- Support SQL Dialect 1/3
- LGPL License agreement
- Extract Metadata
- Simple Script Parser
- Only 100-150 KB added into final EXE
- Support BLOB Fields
- Export Data to HTML SQL Script
- Service manager (backup,restore,gfix...)
- Events Alerter
You can download documentation on FBLib's website.
Unified Interbase
UIB provides access to Interbase, Firebird and YAFFIL databases. The homepage is www.progdigy.com. A svn repository is available under https://uib.svn.sourceforge.net/svnroot/uib .
TechInsite Object Persistence Framework (tiOPF)
More information about tiOPF can be found on this page.
Advantage TDataSet Descendant
The Advantage TDataSet Descedant provides a means of connecting to (and opening tables with) the Advantage Database Server. Advantage is a flexible, administration-free embedded database that provides Client/Server as well as Peer-to-peer access to Clipper, FoxPro and Visual FoxPro 9 DBF file formats, as well as a proprietary file format that provides a migration path allowing the use of newer features.
Key Features:
- Royalty-free peer-to-peer database access with migration path to Client/Server
- Multi-Platform (Clients supported on Windows and Linux, Server supported on Windows, Linux, and NetWare)
- Supports Both navigational and relational SQL database access
- Full-text search engine
- Table, Index, Memo, and communication encryption
- Compatible with native TDataset components
- Online Backup
- Server supports Replication
For more information, see the Advantage Database Server website.