Progress
DataServer
for ODBC Guide
Unsupported 4GL Statements
The DataServer supplies you with complete Progress functionality when accessing ODBC data sources. Nearly all 4GL language elements (statements, functions, and so forth) and Progress Data Dictionary features work the same whether your application accesses a data source through the DataServer or a Progress database.
Use the DBRESTRICTIONS function to find out which Progress features your ODBC data sources or specific tables in those data sources do not support. For the DataServer for ODBC, DBRESTRICTIONS can return SETUSERID, SET–CURRENT–VALUE, and COUNT–OF. In certain circumstances, it can return additional values:
See the DBRESTRICTIONS function reference entry in the Progress Language Reference for information on syntax.
Table 2–8 summarizes the 4GL differences between Progress databases and ODBC data sources.
Table 2–8: 4GL Differences for Progress Databases and ODBC Data Sources Progress Feature ODBC Data-source Difference BEGINS operator
Abbreviated Index
USING option When you use these 4GL elements to access data in an ODBC data source, you might get different results than from a Progress database. Suppose, for example, that you have customers named SI and SIM and that you issue this find statement:
FIND customer WHERE name BEGINS "SI".
Progress returns the customer named SI. With the DataServer, the find fails because the FIND statement is ambiguous. You receive the same results when you use an abbreviated index or the USING option in your query. 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. CURRENT–VALUE statement The DataServer for ODBC can retrieve CURRENT–VALUE if the data source supports the Progress Compatibility dictionary feature. 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, but is stored in an ODBC data source.It is theoretically possible to do this with a Progress database, but using this kind of criteria results in poor performance. A Progress EXCLUSIVE-LOCK is emulated in the ODBC DataServer. A Progress NO-LOCK can be emulated in the ODBC database when the isolation level is set to read-uncommitted. SHARE-LOCK behavior is data-source and isolation-level dependent. See the section "Data Source Record Locking" for more information. NULL ODBC data source NULL = Progress unknown value("?")
Progress NULL (empty string) =
one space in ODBC data source
The ODBC data source does not distinguish between a zero-length character string and a string that contains only blank spaces. Record creation In an ODBC data source, a record is created at the end of a record’s scope and not when the required index information becomes available. SETUSERID function You cannot use this function to change the login name and password of an ODBC data source.
- For more information, see the "Data Source Record Locking" section.
Copyright © 2004 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095 |