Note: The Borland Database Engine (
BDE) has been deprecated, so it will not be enhanced. For instance,
BDE will never have
Unicode support. You should not undertake new development with
BDE. Consider migrating your existing database applications from
BDE to dbExpress.
TQuery supports heterogeneous queries against more than one server or table type (for example, data from an Oracle table and a
Paradox table. When you execute a heterogeneous
query, the
BDE parses and processes the
query using Local
SQL. Because the
BDE uses Local
SQL, extended, server-specific
SQL syntax is not supported.
To perform a heterogeneous
query
1.Define separate
BDE aliases for each database accessed in the
query using the
BDE Administration tool or the
SQL explorer.
2.Leave the DatabaseName property of the TQuery blank; the names of the databases used will be specified in the
SQL statement.
3.In the
SQL property, specify the
SQL statement to execute. Precede each table name in the statement with the
BDE alias for the table's database, enclosed in colons. This whole reference is then enclosed in quotation marks.
4.Set any parameters for the
query in the Params property.
5.Call Prepare to prepare the
query for execution prior to executing it for the first time.
6.Call Open or ExecSQL depending on the type of
query you are executing.
For example, suppose you define an alias called Oracle1 for an Oracle database that has a CUSTOMER table, and Sybase1 for a Sybase database that has an ORDERS table. A simple
query against these two tables would be:
SELECT Customer.CustNo, Orders.OrderNo
FROM ":Oracle1:CUSTOMER"
JOIN ":Sybase1:ORDERS"
ON (Customer.CustNo = Orders.CustNo)
WHERE (Customer.CustNo = 1503)
As an alternative to using a
BDE alias to specify the database in a heterogeneous
query, you can use a TDatabase component. Configure the TDatabase as normal to point to the database, set the TDatabase.DatabaseName to an arbitrary but unique value, and then use that value in the
SQL statement instead of a
BDE alias name.