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.

<strong>Data</strong>base design issues<br />

For example, migrating data to a MS <strong>SQL</strong> <strong>Server</strong> 2000 database will need to be limited to a wide<br />

key capacity of 900 bytes due to the 900-byte key restriction imposed by the <strong>for</strong>eign data source.<br />

Case sensitivity<br />

By default, an <strong>OpenEdge</strong> database is case insensitive. An MS <strong>SQL</strong> <strong>Server</strong> database is also case<br />

insensitive by default. Using case insensitivity in both <strong>OpenEdge</strong> and MS <strong>SQL</strong> <strong>Server</strong> enables<br />

seamless compatibility between the two, and provides the best per<strong>for</strong>mance, and least<br />

maintenance. However, you can set the attributes of a field to define it as either case sensitive<br />

or case insensitive. If you intend to use case sensitivity, consider the following:<br />

• Pattern-matching literals in data source access statements retrieve case-sensitive data.<br />

• The <strong>OpenEdge</strong> database considers the user ID and password submitted at connection time<br />

to be case sensitive.<br />

If an indexed field is case insensitive, an <strong>OpenEdge</strong> database does not distinguish between<br />

uppercase and lowercase letters <strong>for</strong> that index when sorting or matching data. In general, this<br />

flexibility in an application makes data entry easier <strong>for</strong> end users because they can enter<br />

lowercase or uppercase versions of an index. However, if you want to en<strong>for</strong>ce an<br />

uppercase/lowercase distinction in your applications, set the attribute to case sensitive.<br />

If you are using a case sensitive code page, the <strong>Data</strong><strong>Server</strong> can make this feature compatible<br />

across <strong>OpenEdge</strong> and MS <strong>SQL</strong> <strong>Server</strong> data sources. To support case insensitivity with a case<br />

sensitive code page, an extra column, known as a shadow column, must be added to the data<br />

source immediately be<strong>for</strong>e the indexed column. This column is named _S#_column. See the<br />

“Migrating an <strong>OpenEdge</strong> database to MS <strong>SQL</strong> <strong>Server</strong>” section on page 7–20 <strong>for</strong> instructions on<br />

adding this column automatically with the <strong>OpenEdge</strong> DB to MS <strong>SQL</strong> <strong>Server</strong> utility.<br />

Note: By default, sort order in MS <strong>SQL</strong> <strong>Server</strong> is not case sensitive.<br />

Interaction of code page, collation, and case sensitivity<br />

Properly setting code page, collation, and case sensitivity values such that they compliment<br />

each other, will yield the best scenarios <strong>for</strong> data access. To avoid conflict between code page,<br />

collation, and case sensitivity, set these characteristics at schema creation, and allow a schema<br />

pull to manage the <strong>Data</strong><strong>Server</strong> integration. If any of these settings are changed, the schema<br />

holder should be regenerated. Table 2–3 describes the interaction between code page, collation,<br />

and case sensitivity.<br />

MS <strong>SQL</strong> <strong>Server</strong> data source views<br />

MS <strong>SQL</strong> <strong>Server</strong> data source schema objects include views. A view is a presentation of data in<br />

one or more tables. Views appear as tables, not as views, in the <strong>Data</strong> Dictionary’s table list <strong>for</strong><br />

the schema holder. In addition, the schema holder contains no unique index in<strong>for</strong>mation <strong>for</strong><br />

views. Because views do not have unique indexes, you cannot modify any of the data that a view<br />

contains; however, you can access a view with the FOR EACH, FIND NEXT, and GET NEXT<br />

<strong>OpenEdge</strong> statements. Furthermore, because views do not have index definitions, the<br />

<strong>Data</strong><strong>Server</strong> cannot reposition the cursor to retrieve individual records. Thus, you must be sure<br />

to get all of the data that you need in a single database request.<br />

2–13

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

Saved successfully!

Ooh no, something went wrong!