Try OpenEdge Now
skip to main content
DataServer for Microsoft SQL Server
Initial Programming Considerations : ABL issues : Features and language differences

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 19. 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
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.
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.
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.