13.01.2013 Views

OpenEdge Data Management: DataServer for Microsoft SQL Server

OpenEdge Data Management: DataServer for Microsoft SQL Server

OpenEdge Data Management: DataServer for Microsoft SQL Server

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ROWID Support<br />

This section presents details about ROWID function, focusing on:<br />

• Understanding the ROWID implementation<br />

ROWID Support<br />

• Using ROWID with RUN STORED-PROCEDURE and LOAD-RESULT-INTO<br />

• Additional Pro<strong>Data</strong>Set support<br />

Understanding the ROWID implementation<br />

The <strong>OpenEdge</strong> ROWID function returns the unique internal identifier of the database<br />

record currently associated with the record buffer you name. This internal identifier has<br />

the data type ROWID, which is supported <strong>for</strong> <strong>OpenEdge</strong> and all other <strong>Data</strong>Sever<br />

databases.<br />

ROWID characteristics<br />

The ROWID value is not stored directly in the MS <strong>SQL</strong> <strong>Server</strong> data source, but it is<br />

represented by a unique index key in your database. If you migrated your database to<br />

a MS <strong>SQL</strong> <strong>Server</strong> and elected to use the Create RECID Field option during the<br />

migration, a unique 8-byte integer column named PROGRESS_RECID and a<br />

corresponding seed column named PROGRESS_RECID_IDENT will have been<br />

automatically generated in your database tables along with a corresponding Index<br />

containing the PROGRESS_RECID value as its key.<br />

Note: While the PROGRESS_RECID_IDENT column is not used to resolve the ROWID<br />

value, it is important to recognize the presence of this column <strong>for</strong> purposes of<br />

the following discussion. (This point is especially significant because its<br />

physical presence is unknown to the schema holder definition that represents<br />

this table to the client.)<br />

<strong>Data</strong>bases that are only pulled from the native environment or are migrated without the<br />

Create RECID Field option must choose a unique index key from each table to<br />

represent the PROGRESS_RECID to support the RECID and ROWID functions, and <strong>for</strong>ward<br />

and backward scrolling within their ABL sessions. ABL will internally map the selected<br />

unique key to the Progress RECID and ROWID functions.<br />

Note: Reposition functions such as REPOSITION-BACKWARDS and<br />

REPOSITION-TO-ROW typically use ROWID to identify records and functions of<br />

this type require integer expressions which, beginning with <strong>OpenEdge</strong><br />

Release 10.1B, can be either INTEGER or INT64.<br />

It is important to note that the unique index key used to derive the Progress ROWID must<br />

be a single component index <strong>for</strong> it to map to the ROWID of a temp-table as described in<br />

the following discussion. For more details, see the ROWID function discussion in<br />

Chapter 2, “Initial Programming Considerations.”<br />

<strong>OpenEdge</strong> <strong>Data</strong> <strong>Management</strong>: <strong>Data</strong><strong>Server</strong> <strong>for</strong> <strong>Microsoft</strong> <strong>SQL</strong> <strong>Server</strong> 153

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!