skip to main content
OpenEdge Data Management: DataServer for ODBC
The DataServer Tutorial : DataServer utilities : Creating a schema holder
 

Creating a schema holder

To create a schema holder:
1. From the Data Administration main menu, select DataServerODBC UtilitiesCreate DataServer Schema. The Create/Modify Database Record for DataServer Schemadialog box appears:
2. In the Logical Database Name field, type the name that you will use to connect to your ODBC data source and refer to in your programming applications. This name must be different from the schema holder name. For more information on database names, see the database access chapter in OpenEdge Getting Started: ABL Essentials.
Note: If you place the schema from a second ODBC data source into a schema holder, the second schema must have a different logical database name from the first schema. The schema holder has one physical name, but each schema that it contains must have a different logical name.
3. In the Code Page field, type the name of the code page for the schema holder. The name must be the OpenEdge name for the code page that the data source uses. The default is iso8859–1.
The following table lists the most common ODBC data-source code pages and the equivalent OpenEdge names.
Table 24. ODBC data-source and OpenEdge code pages
ODBC data-source code page
OpenEdge equivalent
iso_1
iso8859–1 (default schema-holder code page)
cp850
ibm850
If you use a code page that OpenEdge does not support, you must supply a conversion table that translates between the OpenEdge client code page and the code page that your data source uses. For a complete discussion of code pages, see OpenEdge Development: Internationalizing Applications.
4. In the Collation field, enter the name of the collation rule to use. The default is Basic. See Client code page for a discussion of collation issues to consider.
5. Type the connection parameters in the Connection Parameters field.
See Connecting the DataServer for a description of the required and optional connection parameters.
6. In the ODBC Data Source Name field, type the name that you used when you registered the data source with the ODBC administration tool.
7. Click OK. The utility prompts you for your data-source user ID and password. If they are required by the non-OpenEdge data source and you did not provide them in the Connection Parameters field (see Step 5 above), enter a data-source user ID and password combination that has select privileges for the system objects listed in Establishing permissions, and also has read access to other database objects that the schema holder will include.
8. Click OK. When the DataServer connects to the ODBC data source, it reads information about data-source objects. The Pre-Selection Criteria for Schema Pull dialog box appears:
Note: The Owner field in the Pre-Selection Criteria dialog is labeled Collection/Library when the foreign DBMS type is DB2/400.
You can select tables based on the object name, owner name, and qualifier. For example, you can specify A* in the Object Name field to list all the tables whose names begin with A.
DB2 for iSeries uses a SQL "Collection" or native "Library" to qualify data object selection. Note that in the above screen capture, the Owner label is replaced with Collection/Library when the foreign DBMS type is DB2/400. The Collection/Library default value is derived from the Collection/Library name specified during migration. If you did not migrate your foreign database from OpenEdge and are instead pulling objects from an existing foreign data source into an OpenEdge schema holder, the Collection/Library default value is derived from the Data Source Name (DSN) properties of the DB2 driver configuration. You can specify any valid native "Library" in the Collection/Library parameter, however OpenEdge expects and Progress recommends that data objects in the foreign data source are defined to the SQL "Collection" specified in the DSN configuration. "Collections" are SQL-compliant so objects defined to them are also SQL-compliant by definition. Data object definitions retrieved from native iSeries libraries are expected to be SQL-compliant as well. Any native attributes of database object definitions retrieved from objects in DB2/400 for iSeries "libraries" are not inclusive in their schema holder definitions if those attributes are purely native, i.e., are not SQL-compliant attributes. Progress recommends defining all database objects from all native libraries you wish to define to OpenEdge in a single collection that you also specify in your DSN configuration.
Alternatively, the iSeries Access for Windows native driver for iSeries may provide some native feature mapping not available with the branded DB2 UDB driver provided with OpenEdge. When the native driver is used, if not specified, the default "Collection/Library" name originates from the 'SQL Default Library' specified by the DSN. If 'SQL Default Library' is not specified but a 'Library List' is designated by the DSN, then the first library in the library list is designated as the default 'Collection/Library'. If neither of these values are specified by the DSN, then the user id of the user performing the dictionary action is used for the default 'Collection/Library' value.
Note: Progress Software Corporation recommends that you do not specify an entry that consists exclusively of wild cards for each of the three entry fields in the dialog box. An entry that consists exclusively of wild cards might degrade the performance of the database when you perform a schema pull. (It will include system catalog files from the data source not typically included in user databases.)
9. Click OK. OpenEdge displays a list of the data-source objects that you can include in the schema holder:
If you specified all wild cards as your table-selection criteria, the list might also include system-owned objects, which you do not have to include in the schema holder.
10. Click the option appropriate to the action you want to perform:
*Select Some — Displays the Select by Pattern Match dialog box on which you can specify information used to select objects
*Deselect Some — Displays the Deselect by Pattern Match dialog box on which you can specify information used to deselect objects
11. Click OK after you have identified all the objects you want to include in the schema holder. The DataServer reads information about the objects that you select and loads their data definitions into the schema holder. The time that this process takes depends on the size and number of objects that you select.
You can also elect to select and deselect individual objects by clicking and double-clicking on an object. An asterisk appears next to an object that has been selected; double-click an object to remove the asterisk and identify that the object is now deselected.
For each data-source table, the DataServer attempts to select an index to support the Progress ROWID. If an appropriate index does not exist, the DataServer issues the warning, "Please check warnings and messages in the file ds_upd.e." The ds_upd.e file lists the objects that do not support ROWID. You can change the DataServer's selection of an index to support ROWID by using the Data Dictionary. See ROWID function for instructions. For additional information, see Indexes and sorting and ROWID function.