Database
Access Solutions
Database
access:
- BDE native links advantages over ODBC:
- higher performance & faster implementation of
new database features
- support for features not implemented in ODBC:
- Oracle 8's new blob types &
object-relational databases
- better data caching as supports cached
updates, thereby:
- allowing new types of apps such
as On-Line Transaction Processing
without degradation in speed
- providing much higher throughput
when performing multiple
transactions on the server at
once
- ability to add additional layers such as
Data Dictionary (thus MIDAS data
constraints cannot be used with ODBC).
- testing database operations are simplified as the
ODBC driver layer is removed.
- BDE advantages & disadvantages:
- advantages:
- some degree of database independence in
programming, but switching may require
some re-writing
- some databases are supported very well
(eg. native link to Oracle is very fast!)
- no cost involved
- easier to find programmers with BDE
experience
- allows use of MIDAS & migration is
designed to be very easy
- allows use of other multi-tier solutions
such as MTS, Entera, dbOvernet, ASTA
- latest versions have far fewer bugs &
web-based support for developers has
improved
- disadvantages:
- without MIDAS, deployment is large and
often a source of problems
- its architecture pretends that a DB
server is really just a big Paradox table
- BLOB bugs - several of the SQL links
drivers do not work well with these data
types
- adds yet another layer if using ODBC
which may reduce ODBC performance
- does not expose all functionality of
underlying databases (eg. IB array types)
- SQL Links expensive as need C/S version
- Borland likely to cease upgrading BDE in favour of the
more scalable Midas.dll
- Delphi 5 and higher:
- ADOExpress:
- uses COM to interact with Microsoft's ADO objects (COM objects
that access data via an OLE DB provider)and its JET engine
- advantages:
- better database connectivity for MS Access or MS SQL Server
than BDE
- more control over types of updates applied or cancelled than
with TClientDataset
- can fetch data asynchronously
- ability to filter on a set of records identified by
bookmarks
- connection timeouts
- great for active server pages
- cons:
- requires MS ADO 2.1 or higher installed on client as well as
ODBC/OLE DB driver
- only for Windows & not Linux
- requires ODBC as well for connection to Sybase, Oracle, etc
- not easily changed to BDE or dbExpress if need a more
generic solution later
- dbExpress:
- unidirectional, fast, small, highly scalable Borland DLL
available on Windows and Linux
- requires driver file (eg. dbexpint.dll for Interbase) and
dbxdrivers.ini (which stores database link info)
- connects to:
- Oracle, Interbase, MySQL, DB2, Sybase, MS SQL Server
- cons:
- must use TClientDatasets (and thus Midas.dll) if wish to:
- use filters
- use lookup fields
- use transactions & cached updates
- no native drivers yet for Paradox,
Dbase, ODBC
- Other database engine interfaces for
Delphi:
- Choose the database to access then choose a BDE
alternative to access it:
- eg. Sybase
SQL Anywhere:
- Native
driver solutions:
- BDE
SQL Link native driver
- Titan
SQL Anywhere:
- http://www.reggatta.com
- fast, small
footprint, $US395
developer; $US595 with
source code;
- uses same Sybase API
that their ODBC
- IP compatible
- can still use BDE to
access other databases in
same app.
- ADO/RDS/OLE
DB multi-tier compatible
(via Sybase ODBC as no Sybase
OLEDB yet?):
- ODBC
solutions:
- BDE
- ODBCExpress:
- does not work well
with Sybase ODBC driver
which is buggy creating
problems with grids and
bookmarks
- ODBC98