Главная страница | назад





Article #25183: Handling the "Capability not supported" error

Problem:
An application written using the BDE, Delphi, or C++ Builder may return an error "Capability not supported."

Solution:
This error is returned by the BDE when the BDE parses an SQL 
string to be sent to a server and the syntax of the string is not
 supported by the BDE.  

See below for more information on how the BDE sends pass
 through SQL strings to DBMS servers and ODBC data sources.

The BDE, and Delphi and C++ Builder applications that use 
data-aware components send SQL strings to DBMS servers
 and ODBC data sources depending on the setting of the
 SQLQRYMODE parameters.  

The settings of the SQLQRYMODE parameter are listed
in the BDE Administrator Help (formerly known as the BDE 
Configuration Help) file, and are paraphrased below:

   - The SQL string is sent to the server or ODBC data source 
            first.  If an error is returned the string is then parsed 
            and ran by the BDE.
  SERVER  - The SQL string is sent to the server or ODBC data source, if 
            an error is returned then the error is placed on the BDE 
            error stack and the appropriate BDE error is returned.
  LOCAL   - The SQL string is parsed and ran by the BDE.

When the BDE parses and runs the SQL string due to the 
SQLQRYMODE being set to blank or LOCAL, if the SQL 
string to be parsed is not supported by the BDE the 
error "Capability not supported" is returned.

The SQLQRYMODE parameter is found in both BDE alias 
definitions and in BDE driver definitions.  The BDE will look for 
this parameter first in the alias definition, if it is not found or the 
entry not a recognized value or is corrupted then the BDE will 
look at this parameter in the driver definition.  Alias definitions 
can be created by using TDatabase component, by using the 
DbiOpenDatabase() and DbiAddAlias() BDE API calls, and by using 
the BDE Administrator (formerly the BDE Configuration) utility.

Last Modified: 29-SEP-00