Difference between revisions of "fcl-db"
From Lazarus wiki
Jump to navigationJump to searchm (some links) |
(→Known issues/shortcomings: Links) |
||
Line 3: | Line 3: | ||
== Known issues/shortcomings == | == Known issues/shortcomings == | ||
− | * Master - detail relations are not complete | + | * Master - detail relations are not complete; however you can implement it using [[MasterDetail]] |
* Calculated field support is not complete | * Calculated field support is not complete | ||
* No binary data transfer using parameters (everything is converted to ASCII) in most drivers. | * No binary data transfer using parameters (everything is converted to ASCII) in most drivers. | ||
Line 9: | Line 9: | ||
* Most character encoding issues are solved fairly ad hoc. There is no way to set the fundamental encodings manually: | * Most character encoding issues are solved fairly ad hoc. There is no way to set the fundamental encodings manually: | ||
*# the encoding of the connection | *# the encoding of the connection | ||
− | *# the encoding of the components internal storage | + | *# the encoding of the components' internal storage |
*# the encoding of GUI components | *# the encoding of GUI components | ||
*# (optionally, encoding of exports, or fileformats) | *# (optionally, encoding of exports, or fileformats) | ||
Line 16: | Line 16: | ||
* Before FPC 2.6: no stored procedure resultset >1 row | * Before FPC 2.6: no stored procedure resultset >1 row | ||
− | Most of these are being worked on, and the status changes on a | + | Most of these are being worked on, and the status changes on a regular basis, so be sure to do your own testing and source inspection, since this will be most certainly out of date. |
− | A testsuite exists and is | + | A testsuite exists (see [[Databases#Running_FPC_database_tests]]) and is expanded when new bugs and functionality occurr. |
== Units == | == Units == |
Revision as of 11:01, 20 April 2013
The package FCL-db contains most of FPC's higher level database system, plus table drivers for some popular systems.
Known issues/shortcomings
- Master - detail relations are not complete; however you can implement it using MasterDetail
- Calculated field support is not complete
- No binary data transfer using parameters (everything is converted to ASCII) in most drivers.
- There are some floating point issues, with precision and scale parameters only minimally supported in some drivers (amongst others mysql)
- Most character encoding issues are solved fairly ad hoc. There is no way to set the fundamental encodings manually:
- the encoding of the connection
- the encoding of the components' internal storage
- the encoding of GUI components
- (optionally, encoding of exports, or fileformats)
- Many driver dependent issues in datetime types and timezone support.
- Between the drivers, Firebird is used the most, then Mysql, SQLite, PostgreSQL and ODBC. Finally comes Oracle which is mostly still at a proof of concept level. The Microsoft SQL Server and Sybase ASE drivers are a recent addition to FPC (2.6.1 and higher) and Lazarus.
- Before FPC 2.6: no stored procedure resultset >1 row
Most of these are being worked on, and the status changes on a regular basis, so be sure to do your own testing and source inspection, since this will be most certainly out of date.
A testsuite exists (see Databases#Running_FPC_database_tests) and is expanded when new bugs and functionality occurr.
Units
(In the below table the subdir is listed as "submodule", so one can see easily to which subsystem the unit belongs.
Unit | submodule | comment |
---|---|---|
browseds | sqlite | |
bufdataset | base | In memory dataset. More capable than memds. See How_to_write_in-memory_database_applications_in_Lazarus/FPC#TBufDataSet for some usage examples |
bufdataset_parser | base | |
concurrencyds | sqlite | |
createds | sqlite | |
customsqliteds | sqlite | |
db | base | |
dbcoll | base | |
dbconst | base | |
dbf | dbase | |
dbf_avl | dbase | |
dbf_collate | dbase | |
dbf_common | dbase | |
dbf_cursor | dbase | |
dbf_dbffile | dbase | |
dbf_fields | dbase | |
dbf_idxcur | dbase | |
dbf_idxfile | dbase | |
dbf_lang | dbase | |
dbf_memo | dbase | |
dbf_parser | dbase | |
dbf_pgcfile | dbase | |
dbf_pgfile | dbase | |
dbf_prscore | dbase | |
dbf_prsdef | dbase | |
dbf_prssupp | dbase | |
dbf_reg | dbase | |
dbf_str | dbase | |
dbf_str_es | dbase | |
dbf_str_fr | dbase | |
dbf_str_ita | dbase | |
dbf_str_nl | dbase | |
dbf_str_pl | dbase | |
dbf_str_pt | dbase | |
dbf_str_ru | dbase | |
dbf_wtil | dbase | |
dblib | Wrapper around FreeTDS; required for the mssqlconn SQLDB driver for Microsoft SQL Server and Sybase ASE | |
dbwhtml | base | |
fillds | sqlite | |
fpcgcreatedbf | codegen | |
fpcgdbcoll | codegen | |
fpcgsqlconst | codegen | |
fpcgtiopf | codegen | |
fpcsvexport | export | |
fpdatadict | datadict | |
fpdbexport | export | |
fpdbfexport | export | |
fpddcodegen | codegen | |
fpdddbf | datadict | |
fpdddiff | datadict | |
fpddfb | datadict | |
fpddmysql40 | datadict | |
fpddmysql41 | datadict | |
fpddmysql50 | datadict | |
fpddodbc | datadict | |
fpddoracle | datadict | |
fpddpopcode | codegen | |
fpddpq | datadict | |
fpddregstd | datadict | |
fpddsqldb | datadict | |
fpddsqlite3 | datadict | |
fpfixedexport | export | Dataset export to fixed width text format |
fprtfexport | export | Dataset export to RTF format |
fpsimplejsonexport | export | Dataset export to JSON format |
fpsimplexmlexport | export | Dataset export to ASCII encoded XML |
fpsqlexport | export | Dataset export to SQL Insert/Update statements |
fpstdexports | export | |
fptexexport | export | Dataset export to Latex format |
fpXMLXSDExport | export | Dataset export to various XML formats: Access, ADO.Net, Excel, Delphi ClientDataset |
ibconnection | sqldb/interbase | |
memds | memds | In memory dataset. Not as capable as bufdataset. See How_to_write_in-memory_database_applications_in_Lazarus for some usage examples |
mssqlconn | sqldb/mssqlconn | Microsoft SQL Server and Sybase ASE drivers, introduced in FPC 2.6.1. Requires dblib |
mysql40conn | sqldb/mysql | |
mysql41conn | sqldb/mysql | |
mysql4conn | sqldb/mysql | |
mysql50conn | sqldb/mysql | |
mysql51conn | sqldb/mysql | |
mysql55conn | sqldb/mysql | |
odbcconn | sqldb/odbc | |
oracleconnection | sqldb/oracle | |
pqconnection | sqldb/postgres | |
sqlite3conn | sqldb/sqlite | |
paradox | paradox | |
sdfdata | sdf | |
sqldb | sqldb | |
sqlite3ds | sqlite | |
sqliteds | sqlite | |
sqlscript | base | |
tdbf_l | dbase | |
testcp | memds | |
testdbf | dbase | |
testds | sqlite | |
testfix | sdf | |
testld | memds | |
testopen | memds | |
testpop | memds | |
testsdf | sdf | |
testsqldb | sqldb | |
xmldatapacketreader | base |