SQL Property

See Also    Example    Applies To

Sets or returns the SQL statement that defines the query executed by a CdbQueryDef object.

Syntax

VOIDSetSQL(LPCTSTR pstr );

CStringGetSQL(VOID);

Parameters

Type Argument Description
LPCTSTR pstr A pointer to a string that contains an SQL statement.

Remarks

The SQL property contains the SQL statement that determines how records are selected, grouped, and ordered when you execute the query. You can use the query to select records to include in a CdbRecordset object. You can also define action queries to modify data without returning records.

The SQL syntax used in a query must conform to the SQL dialect of the query engine, which is determined by the type of workspace. In a Microsoft Jet workspace, use the Microsoft Jet SQL dialect, unless you create an SQL pass-through query, in which case you should use the dialect of the server. In an ODBCDirect workspace, use the SQL dialect of the server.

Note You can send DAO queries to a variety of different database servers with ODBCDirect, and different servers will recognize slightly different dialects of SQL. Therefore, context-sensitive Help is no longer provided for Microsoft Jet SQL, although online Help for Microsoft Jet SQL is still included through the Help menu. Be sure to check the appropriate reference documentation for the SQL dialect of your database server when using either ODBCDirect connections or pass-through queries in Microsoft Jet-connected client/server applications.

If the SQL statement includes parameters for the query, you must set these before execution. Until you reset the parameters, the same parameter values are applied each time you execute the query.

In an ODBCDirect workspace, you can also use the SQL property to execute a prepared statement on the server. For example, setting the SQL property to the following string will execute a prepared statement named “GetData” with one parameter on a Microsoft SQL Server back-end.

"{call GetData (?)}"

In a Microsoft Jet workspace, using a CdbQueryDef object is the preferred way to perform SQL pass-through operations on Microsoft Jet-connected ODBC data sources. By setting the CdbQueryDef object's Connect property to an ODBC data source, you can use non–Microsoft-Jet-database SQL in the query to be passed to the external server. For example, you can use TRANSACT SQL statements (with Microsoft SQL Server or Sybase SQL Server databases), which the Microsoft Jet database engine would otherwise not process.

Note If you set the property to a string concatenated with a non-integer value, and the system parameters specify a non-U.S. decimal character such as a comma (for example, strSQL = "PRICE > " & lngPrice, and lngPrice = 125,50), an error will result when you try to execute the CdbQueryDef object in a Microsoft Jet database. This is because during concatenation, the number will be converted to a string using your system's default decimal character and Microsoft Jet SQL only accepts U.S. decimal characters.