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.

Defining the ROWID<br />

Modifying a schema holder<br />

When you create or update a schema holder, the <strong>Data</strong><strong>Server</strong> uses the following<br />

guidelines to select a column in a data source table to support the ROWID function:<br />

• If the data source table has a PROGRESS_RECID column, the <strong>Data</strong><strong>Server</strong> selects<br />

that column. A column of this type provides optimal support <strong>for</strong> the ROWID function;<br />

you cannot select an alternative to it. To create a PROGRESS_RECID column, see<br />

the “Using triggers to enable PROGRESS_RECID support of the ROWID<br />

function” section on page 313.<br />

• If the data source table does not have a PROGRESS_RECID column, the <strong>Data</strong><strong>Server</strong><br />

evaluates the available indexes and selects one according to the following criteria:<br />

– The index must be defined as unique.<br />

– The index must be defined as mandatory, or at least treated as such by your<br />

application.<br />

The index selection process proceeds, according to the following order:<br />

1. If you select an index, then you must select a qualified index.<br />

2. If you do not select an index, the MS <strong>SQL</strong> <strong>Server</strong> <strong>Data</strong><strong>Server</strong> selects a qualified<br />

index based on a single-component integer.<br />

However, if the <strong>Data</strong><strong>Server</strong> determines that more than one qualified index meets<br />

the additional criterion as a single-component integer, the <strong>Data</strong><strong>Server</strong> selects the<br />

first index that fulfills the complete criteria.<br />

3. If the MS <strong>SQL</strong> <strong>Server</strong> <strong>Data</strong><strong>Server</strong> cannot find a qualified index based on a<br />

single-component integer, it seeks a qualified index that is multi-component<br />

and/or non-integer.<br />

However, if the <strong>Data</strong><strong>Server</strong> determines that more than one qualified index meets<br />

the additional criterion as multi-component and/or non-integer, the <strong>Data</strong><strong>Server</strong><br />

selects the first index that fulfills the complete criteria.<br />

4. If the MS <strong>SQL</strong> <strong>Server</strong> <strong>Data</strong><strong>Server</strong> cannot find a qualified index that is a<br />

multi-component and/or non-integer, the task cannot be completed and ROWID<br />

support is not provided. The table will not be able to uniquely identify any records.<br />

As a result, implementing FIND statements and per<strong>for</strong>ming queries could lead to<br />

inaccuracies in locating records.<br />

Note that the indexes in this class are not mandatory; there<strong>for</strong>e, it is essential that you<br />

en<strong>for</strong>ce the column supporting ROWID as mandatory at least through code if not through<br />

definitions.<br />

The <strong>Data</strong><strong>Server</strong> allocates a buffer to hold the key in<strong>for</strong>mation <strong>for</strong> the selected RECID<br />

index. The buffer is 245 bytes by default. If the index you select <strong>for</strong> the RECID is a<br />

multi-component index, this may be inadequate. The size of the buffer can be modified<br />

with the -Dsrv ZPRGRS_RECID_BUF_SIZE,n option. See the “RECID Buffer size—the<br />

ZPRGRS_RECID_BUF_SIZE,nnn Option” section on page 329 <strong>for</strong> more in<strong>for</strong>mation<br />

on setting this option.<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> 311

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

Saved successfully!

Ooh no, something went wrong!