OpenEdge Data Management: DataServer for Microsoft SQL Server
OpenEdge Data Management: DataServer for Microsoft SQL Server
OpenEdge Data Management: DataServer for Microsoft SQL Server
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