Topics: |
When the server accesses a data source, it needs to know how to interpret the data stored there. For each data source the server will access, you create a synonym that describes the structure of the data source and the server mapping of the Microsoft SQL Server data types.
How to: |
Reference: |
Synonyms define unique names (or aliases) for each Microsoft SQL Server table or view that is accessible from the server. Synonyms are useful because they hide the underlying data source location and identity from client applications. They also provide support for extended metadata features of the server, such as virtual fields and additional security mechanisms.
Using synonyms allows an object to be moved or renamed while allowing client applications to continue functioning without modification. The only modification required is a redefinition of the synonym on the server. The result of creating a synonym is a Master File and an Access File, which represent the server metadata.
The adapter supports the creation of metadata for certain types of MS SQL Native Synonyms. This feature is only available for Microsoft SQL Server versions 2005 and higher.
You can create metadata for Native Synonyms under the following conditions:
object_name, schema_name.object_name,
or
database_name.schema_name.object_name.
The following types of Native Synonyms are not supported:
server_name.database_name.schema_name.object_name
The Dynamic Columns (NOCOLS) and Cardinality (WITHSTATS) parameters are not supported when creating metadata for a Native Synonym.
Note that creating a synonym for a stored procedure is described with reporting against a stored procedure, in Generating a Synonym for a Stored Procedure.
The Applications page opens.
The Connect to Data page opens.
Depending on the type of adapter you chose, one of the following options appears on the context menu.
The button may be labeled Next, Create Synonym, Create Base Synonyms, Create Cluster Synonym, or Update Base Synonyms.
The synonym creation process for most adapters has been consolidated so that you can enter all necessary parameters on one page. However, for some adapters such as LDAP, you must click Next buttons until you get to a page that has a Create Synonym button.
The synonym is created and added under the specified application directory.
Note: When creating a synonym, if you choose the Validate check box (where available), the server adjusts special characters and checks for reserved words. For more information, see Validation for Special Characters and Reserved Words.
The following list describes the synonym creation parameters for which you can supply values.
Restrict candidates for synonym creation based on the selected object type(s): Tables, Views, External SQL Scripts, and any other supported objects.
Choosing External SQL Scripts from the drop-down list enables you to represent an SQL Query as a synonym for read-only reporting. A Synonym candidate can be any file that contains one (and only one) valid SQL Query and does not contain end-of-statement delimiters (";" or "/") and comments.
Depending on the adapter, you can further restrict your search by choosing check boxes for listed objects.
Important: If you select Stored Procedures as your object type, the input parameters will be a little different from those described here. For details, refer to Creating a Report Against a Stored Procedure.
To specify a database from which you can select a table or other object, do one of the following:
Before selecting a database, if Use current database is checked, uncheck it.
To specify the intended database, choose from the Select database drop-down menu, which shows all databases on the targeted instance of Microsoft SQL Server. Selecting Default Database will retain the database set during connection configuration. If Default Database was not set during configuration, the database assigned to the active login on the SQL Server will be used as the default.
Selecting this option adds the Owner/Schema and Object Name parameters to the screen.
If you specify External SQL Scripts in the Restrict Object type to field, these additional fields are displayed.
The following standard naming conventions apply for UNIX, IBM i IFS, and z/OS HFS:
On IBM i, you can use alternative IFS naming conventions to access library members. The following entry illustrates this method:
/QSYS.LIB/MYLIBRARY.LIB/MYSRC.FILE
During synonym generation, the adapter issues native API calls to obtain a list of elements in the select list and builds the Master File with a field for each element. The generated Access File references the location of the SQL script in the DATASET attribute, which contains the full path, including the name and extension of the file containing the SQL Query. For example,
DATASET=/ul/home2/apps/report3.sql
When a WebFOCUS report is created, the SQL Query is used to access data.
Select the Cardinality check box to reflect the current cardinality (number of rows or tuples) in the table during metadata creation. Cardinality is used for equi-joins. The order of retrieval is based on the size (cardinality) of the table. Smaller tables are read first.
If the cardinality of the tables to be used in the application are dynamic, it may not be beneficial to choose this setting.
You can select the Build cluster using foreign keys check box to include within this synonym every table related to the current table by a foreign key. However, this option has been deprecated, as the recommended way to create a cluster is by using the Synonym Editor. The resulting multi-table synonym describes all of the foreign key relationships of this table.
To specify that the Master File created for the synonym should not contain column information, select the Dynamic columns check box.
If this option is selected, column data is retrieved dynamically from the data source at the time of the request.
Only available when External SQL Scripts is selected from the Restrict objects type to drop-down menu. When selected, a SUBQUERY keyword is added to the Access File of the generated synonym. If the corresponding SQL string has valid syntax that can be used in the FROM statement of the generated SQL (what is known as a Derived Table), then the SQL SCRIPT will be processed as a subquery embedded into a FROM clause. This usage allows for more flexibility. For example, the synonym can be used as a target for a JOIN.
If the SQL SCRIPT has parameter markers, such as ? or :, or the syntax contains constructs that are invalid for a derived table, for example ORDER BY, then this keyword should not be selected. At runtime, if SUBQUERY=Y is present and it is determined that the SQL SCRIPT cannot be used in the FROM statement, the setting will be ignored, and a FOC1782 warning message will be issued. The default is selected (SUBQUERY=Y).
Select an application directory. The default value is baseapp.
If you have tables with identical table names, assign a prefix or a suffix to distinguish them. For example, if you have identically named human resources and payroll tables, assign the prefix HR to distinguish the synonyms for the human resources tables. Note that the resulting synonym name cannot exceed 64 characters.
If all tables and views have unique names, leave the prefix and suffix fields blank.
To change the data type mappings from their default settings, select this check box. The customizable mappings are displayed.
For information about customizable mappings, see Data Type Support.
Select Create to overwrite any existing synonym with the same fully-qualified name, or Update to synchronize the metadata with an existing synonym. If you select Update, the next screen will show a list of attributes from the DBMS catalog that you can check to allow attributes from the DBMS catalog to override attributes from the existing synonym.
To specify that this synonym should overwrite any earlier synonym with the same fully qualified name, select the Overwrite existing synonyms check box.
Note: The connected user must have operating system write privileges in order to recreate a synonym.
This column displays the name that will be assigned to each synonym. To assign a different name, replace the displayed value.
Is the name of the underlying object.
Select tables for which you wish to create synonyms:
An Adapter for Microsoft SQL Server synonym comprises a Master File and an Access File. This is a synonym for the table nf29004.
Generated Master File nf29004.mas
FILE=DIVISION, SUFFIX=SQLMSS ,$ SEGNAME=SEG1_4, SEGTYPE=S0 ,$ FIELD=DIVISION4, DIVISION4, I9, I4, MISSING=OFF ,$ FIELD=DIVISION_NA4, DIVISION_NA4, A25, A25, MISSING=ON ,$ FIELD=DIVISION_HE4, DIVISION_HE4, I9, I4, MISSING=ON ,$
Generated Access File nf29004.acx
SEGNAME=SEG1_4,TABLENAME=edaqa.nf29004, CONNECTION=connmss, KEYS=1, WRITE=YES,$
When you generate a synonym for a Microsoft SQL table or view, the adapter maps comments as follows:
Both Unicode and non-Unicode comments are supported.
Also, MS SQL Server column title (if present) is mapped to the TITLE attribute in the Master File synonym.
This chart describes the keywords in the Access File.
Keyword |
Description |
---|---|
SEGNAME |
Value must be identical to the SEGNAME value in the Master File. |
TABLENAME |
Identifies the Microsoft SQL Server table. The table name can be fully qualified as follows: TABLENAME=[[database.]owner.]table |
CONNECTION |
Indicates a previously declared connection. The syntax is: CONNECTION=connection CONNECTION=' ' indicates access to the local database server. Absence of the CONNECTION attribute indicates access to the default database server. |
KEYS |
Indicates how many columns constitute the primary key for the table. Corresponds to the first n fields in the Master File segment. This attribute requires the columns that constitute the key to be described first in the Master File. See the KEY attribute below for information about specifying the key fields without having to describe them first in the Master File. |
KEY |
Specifies the columns that participate in the primary key without having to describe them first in the Master File. The syntax is: KEY=fld1/fld2/.../fldn |
WRITE |
Specifies whether write operations are allowed against the table. |
KEYFLD IXFLD |
Supply the names of the primary key and foreign key fields that implement the relationships established by the multi-table Master File. Together, KEYFLD and IXFLD identify the field shared by a related table pair.
KEYFLD and IXFLD must have the same data type. It is recommended, but not required, that their lengths also be the same. Note: An RDBMS index on both the KEYFLD and IXFLD columns provides the RDBMS with a greater opportunity to produce efficient joins. The columns must have the same data type. If their length is the same, the RDBMS handles the join more efficiently. |
AUTO INCREMENT |
When set to Yes, enables the auto increment feature. |
START |
Initial value in incrementing sequence. |
INCREMENT |
Increment interval. |
INDEX_NAME INDEX_UNIQUE INDEX_COLUMNS INDEX_ORDER |
Indicate a name of the index in a database, uniqueness, name, and order of the indexed column(s). |
Once you have created a synonym, you can right-click the synonym name in the Adapter navigation pane of either the Web Console or the Data Management Console to access the available options.
For a list of options, see Synonym Management Options.
SQL Data Type mapping options are available in a report available from the Web Console.
For more information, see How to Access the Data Type Report.
How to: |
The SET parameter VARCHAR controls the mapping of the Microsoft SQL Server data type VARCHAR. By default, the server maps these data types as variable character (AnV).
The following table lists data type mappings based on the value of VARCHAR:
Microsoft SQL Server Data Type |
Remarks |
VARCHAR ON |
VARCHAR OFF |
||
---|---|---|---|---|---|
USAGE |
ACTUAL |
USAGE |
ACTUAL |
||
VARCHAR (n) |
n is an integer between 1 and 8000 |
AnV |
AnV |
An |
An |
NVARCHAR (n) |
n is an integer between 1 and 4000 |
AnV |
AnV |
An |
An |
VARBINARY (n) |
n is an integer between 1 and 8000m = 2 * n |
AmV |
AmV |
Am |
Am |
ENGINE SQLMSS SET VARCHAR {ON|OFF}
where:
Indicates the adapter. You can omit this value if you previously issued the SET SQLENGINE command.
Maps the Microsoft SQL Server data type VARCHAR as variable-length alphanumeric (AnV). This is required for Unicode environments. ON is the default value.
Maps the Microsoft SQL Server data type VARCHAR as alphanumeric (A).
How to: |
The SET parameter NCHAR indicates whether the character set is single-byte, double-byte, or triple-byte. The NCHAR setting affects the mapping of NCHAR and NVARCHAR data types.
The following chart lists data type mappings based on the value of NCHAR.
Microsoft SQL Server Data Type |
Remarks |
NCHAR SBCS |
NCHAR DBCS |
NCHAR TBCS |
|||
---|---|---|---|---|---|---|---|
USAGE |
ACTUAL |
USAGE |
ACTUAL |
USAGE |
ACTUAL |
||
NCHAR (n) |
n is an integer between 1 and 4000
d = 2 * n t = 3 * n |
An |
An |
Ad |
Ad |
At |
At |
NVARCHAR (n) |
n is an integer between 1 and 4000
d = 2 * n t = 3 * n |
An |
An |
Ad |
Ad |
At |
At |
The available parameters are:
ENGINE SQLMSS SET NCHAR {SBCS|DBCS|TBCS}
where:
Indicates the adapter. You can omit this value if you previously issued the SET SQLENGINE command.
Indicates a single-byte character set. SBCS is the default value.
Indicates a double-byte character set.
Indicates a triple-byte character set.
The new SQL Expression generator in the TABLE Adapter by default preserves literal contents, including trailing blanks in string literals and the fractional part and exponential notation in numeric literals. This allows greater control over the generated SQL.
In some rare cases when trailing blanks are not needed, the following syntax
ENGINE SQLMSS SET TRIM_LITERALS ON
is available to ensure backward compatibility.
You can alter the length and scale of numeric columns returned by a SELECT request to the server by creating different specifications in your login profile or in a stored procedure. The conversion settings are reflected in the Master File in the USAGE and ACTUAL formats of the fields generated by CREATE SYNONYM. This affects how the fields are processed and formatted by the server.
Tip: You can change this setting manually or from the Web Console.
For more information, see Override the Default Precision and Scale.
CREATE SYNONYM creates a field description with FIELDTYPE=R for Microsoft SQL Server columns created as TIMESTAMP or columns with the IDENTITY attribute. These fields are read-only. When executing a MAINTAIN or MODIFY procedure, the adapter suppresses all write operations against columns marked in the Master File with FIELDTYPE=R.
This example creates a table in which the first column has the IDENTITY property and the second column is a timestamp column:
CREATE TABLE TAB1 (idproptab int IDENTITY (1,1), timstmp timestamp)
CREATE SYNONYM generates the following Master File for this table:
FILE=TAB1, SUFFIX=SQLMSS ,$ SEGNAME=TAB1, SEGTYPE=S0 ,$ FIELD=IDPROPTAB, idproptab, I11, I4, MISSING=OFF, FIELDTYPE=R ,$ FIELD=TIMSTMP, timstmp, A16, A16, MISSING=ON, FIELDTYPE=R ,$
WebFOCUS | |
Feedback |