Features and language differences

The DataServer supplies you with complete ABL functionality when accessing MS SQL Server data sources. Many ABL language elements (statements, functions, and so forth) and Data Dictionary features work the same whether your application accesses a data source through the DataServer or an OpenEdge database.

Use the DBRESTRICTIONS function to find out which OpenEdge features your MS SQL Server data source does not support. For the DataServer for MS SQL Server, DBRESTRICTIONS can return SETUSERID and COUNT-OF. In certain circumstances, it can return additional values. For example, it can return READ-ONLY if you connect to the schema holder in read-only mode. See the "DBRESTRICTIONS function" reference entry in OpenEdge Development: ABL Reference for information on syntax.

The following table summarizes ABL differences between OpenEdge databases and MS SQL Server data sources.

Table 1. ABL differences between OpenEdge Databases and MS SQL Server data sources
OpenEdge feature MS SQL Server data source difference
CONTAINS operator This operator relates to word indexing, which the DataServer does not support.
COUNT-OF function The DataServer does not support this function.
CREATE statement Records that you create after opening a cursor might be invisible to that cursor.

FIND statements

FOR EACH statements

OPEN QUERY statement

To reduce the number of records included in the results set, qualify your FIND statements and queries with a WHERE clause.

MATCHES function

BEGINS function

The DataServer does not support using the percent (%) or underscore (_) character with the MATCHES and BEGINS functions. Do not use these functions with a pattern that is not an expression.

Any run-time substitution of the operands to the MATCHES and BEGINS functions causes the client to evaluate such phrases because only the OpenEdge client can handle wild card contents native to OpenEdge. Also, the wild card content is evaluated based on OpenEdge wild cards NOT based on the wild cards native to the foreign data source.

Note: It is theoretically possible to do this with an OpenEdge database, but using this kind of criteria results in poor performance.

NO-LOCK option1

SHARE-LOCK option

EXCLUSIVE-LOCK option

An OpenEdge EXCLUSIVE-LOCK is emulated in the DataServer. An OpenEdge NO-LOCK can be emulated in the MS SQL Server database when the isolation level is set to read-uncommitted.

SHARE-LOCK behavior is data source and isolation- level dependent. See Data source record locking for more information.

NULL

MS SQL Server NULL = Unknown value (?)

OpenEdge empty string ("") = a one space string in MS SQL Server.

Record creation A record is created at the end of a record's scope and not when the required index information becomes available.
SESSION:TIME-SOURCE handle This system handle returns the MS SQL Server's server time information.
SETUSERID function You cannot use this function to change the login name and password.
1 For more information, see Data source record locking.