Developing OTDs for Database Adapters

Creating a New Sybase OTD

The following steps are required to create a new OTD for the Sybase Adapter.

Select Wizard Type

Select the type of wizard required to build an OTD in the New Object Type Definition Wizard.

ProcedureTo Select the Sybase Database OTD Wizard

  1. On the Project tree, right click on the project and select Create an Object Type Definition from the shortcut menu.

  2. From the OTD Wizard Selection window, select the Sybase Database and click Next. See the following figure.

    Figure 1–40 OTD Wizard Selection

    OTD Wizard Selection

To Connect to Database

Enter the Sybase database connection information in the Connection Information frame.

Required Database Connection Fields

Select Database Objects

Select the type of Sybase database objects you want included in the OTD.

ProcedureTo Select Database Objects

  1. When selecting Database Objects, you can select any combination of Tables, Views, Procedures, or Prepared Statements you would like to include in the .otd file. Click Next to continue. See the following figure.


    Note –

    Views are read-only and are for informational purposes only.


    Figure 1–41 Select Database Objects

    Select Database Objects

Select Tables/Views/Aliases

Select the types of tables or views required in the OTD.

ProcedureTo Select Table/Views/Aliases

  1. In the Select Tables/Views/Aliases window, click Add. See the following figure.

    Figure 1–42 Select Tables/Views/Aliases

    Select Tables/Views/Aliases

  2. In the Add Tables window, select if your selection criteria will include table data, view only data, both, and/or system tables.

  3. From the Table/View Name drop down list, select the location of your database table and click Search. See the following figure.

    Figure 1–43 Database Wizard - All Schemes

    Database Wizard - All Schemes

  4. Select the table of choice and click OK.

    The table selected is added to the Selected Tables/Views window. See the following figure.

    Figure 1–44 Selected Tables/Views/Aliases window with a table selected

    Selected Tables/Views/Aliases window with a table selected

  5. In the Selected Tables/Views/Aliases window, review the table(s) you have selected. To make changes to the selected Table or View, click Change. If you do not wish to make any additional changes, click Next to continue.

  6. In the Table/View Columns window, you can select or deselect your table columns. You can also change the data type for each table by highlighting the data type and selecting a different one from the drop down list. If you would like to change any of the tables columns, click Change. See the following figure.

    The data type is usually listed as Other when the driver cannot detect the data type. In these situations we recommend changing the data type to one that is more appropriate for the type of column data.

    Figure 1–45 Table/View Columns

    Table/View Columns

  7. Click Advanced to change the data type, percision/length, or scale. Once you have finished your table choices, click OK. In general, you will not need to make any changes. See the following figure.

    Figure 1–46 Table/View Columns— Advanced

    Table/View Columns— Advanced

Select Procedures

Select the type of stored procedures required in your OTD.

ProcedureTo Select Stored Procedures

  1. On the Select Procedures and specify Resultset and Parameter Information window, click Add.

    Figure 1–47 Select Procedures and specify Resultset and Parameter Information

    Select Procedures and specify Resultset and Parameter
Information


    Note –

    A fully qualified Procedure Name consists of two parts: Schema Name, and the Stored Procedure Table Name. Code that is generated in a Java Collaboration Definition appears fully qualified when the Use fully-qualified procedure names in the generated Java code checkbox is selected. When this checkbox is not selected, then only the Stored Procedure Table Name appears.


  2. On the Select Procedures window, enter the name of a Procedure or select a table from the drop down list. Click Search. Wildcard characters can also be used.

  3. In the resulting Procedure Selection list box, select a Procedure. Click OK.

    Figure 1–48 Add Procedures

    Add Procedures

  4. On the Select Procedures and specify Resultset and Parameter Information window click Edit Parameters to make any changes to the selected Procedure. See the following figure.

    Figure 1–49 Procedure Parameters

    Procedure Parameters

  5. To restore the data type, click Restore. When finished, click OK.

  6. To select how you would like the OTD to generate the nodes for the Resultset click Edit Resultsets.

  7. Click Add to add the type of Resultset node you would like to generate.

    Figure 1–50 Edit Resultset

    Edit Resultset

    The DBWizard provides three different ways to generate the ResultSet nodes of a Stored Procedure. They are "By Executing", "Manually", and "With Assistance" modes.

    By Executing Mode 

    “By Executing” mode executes the specified Stored Procedure with default values to generate the ResultSet(s). Depending on the business logic of the Stored Procedure, zero or more ResultSets can be returned from the execution. In the case that there are multiple ResultSets and "By Executing" mode does not return all ResultSets, one should use the other modes to generate the ResultSet nodes. 

    With Assistance Mode 

    "With Assistance" mode allows users to specify a query and execute it to generate the ResultSet node. To facilitate this operation, the DBWizard tries to retrieve the content of the specified Stored Procedure and display it. However, content retrieval is not supported by all types of Stored Procedures. We can roughly classify Stored Procedures into two types: SQL and external. SQL Stored Procedures are created using CREATE PROCEDURE SQL statements while external Stored Procedures are created using host languages (e.g. Java). Since external Stored Procedures do not store their execution plans in the database, content retrieval is impossible. When using "Assist" mode, highlight the execute statement up to and including the table name(s) before executing the query. 

    Manually Mode 

    "Manually" mode is the most flexible way to generate the result set nodes. It allows users to specify the node name, original column name and data type manually. One drawback of this method is that users need to know the original column names and data types. This is not always possible. For example, the column name of 3*C in this query. 


    SELECT A, B, 3*C FROM table T

    is generated by the database. In this case, "With Assistance" mode is a better choice. 

    If you modify the ResultSet generated by the “Execute” mode of the Database Wizard you need to make sure the indexes match the Stored Procedure. This assures your ResultSet indexes are preserved. 

  8. On the Select Procedures and specify Resultset and Parameter Information window click Next to continue.


    Note –

    In some situations, stored procedures that uses a Select statement may not return a resultset when a conditional statement is used. In this case, no data is returned when the next() method is called, even if the resultset available() method returns “true”. This result is consistent with the type of driver we use.



    Note –

    When you use Insert, Update, and Delete operations, in addition to using Select, the stored procedure will return results for each operation used. We recommend invoking the enableResultSetsOnly() method if you only want to return a resultset for the Select statement.


Add Prepared Statement

Add a Prepared Statement object to your OTD.

ProcedureTo Add Prepared Statements

  1. On the Add Prepared Statements window, click Add.

    Figure 1–51 Prepared Statement

    Prepared Statement

  2. Enter the name of a Prepared Statement or create a SQL statement by clicking in the SQL Statement window. When finished creating the statement, click Save As giving the statement a name. This name will appear as a node in the OTD. Click OK. See the following figure.

    Figure 1–52 Prepared SQL Statement

    Prepared SQL Statement

  3. On the Add Prepared Statement window, the name you assigned to the Prepared Statement appears. To edit the parameters, click Edit Parameters. You can change the datatype by clicking in the Type field and selecting a different type from the list.

  4. Click Add if you want to add additional parameters to the Statement or highlight a row and click Remove to remove it. Click OK. See the following figure.

    Figure 1–53 Edit the Prepared Statement Parameters

    Edit the Prepared Statement Parameters.

  5. To edit Resultset Columns, click Edit Resultset Columns. The ResultSet Columns window appears. See the following figure.

    Figure 1–54 ResultSet Columns

    ResultSet Columns

  6. Click Add to add a new ResultSet column. Both the Name and Type are editable.

  7. Click OK to return to the Add Prepared Statements window.

Troubleshooting

When using a Prepared Statement, the ResultsAvailable() method always returns true. Although this method is available, you should not use it with a while loop since it creates an infinate loop at runtime, exhausting all CPU activity.You can process a resultset by looping through the next() method.

If the Prepared Statement is wrong, then the ResultSet Columns count is zero.

Specify the OTD Name

Specify the name that your OTD will display in the Java CAPS IDE.

ProcedureTo Specify the OTD Name

  1. Enter a name for the OTD. The OTD contains the selected tables and the package name of the generated classes. See the following figure.

    Figure 1–55 Naming an OTD

    Naming an OTD

  2. Click Next.

Review Selections

Review the selections made for the new OTD.

ProcedureTo Review Your OTD Selections

  1. View the summary of the OTD. If you find you have made a mistake, click Back and correct the information.

  2. If you are satisfied with the OTD information, click Finish to begin generating the OTD. See the following figure.

    The resulting OTD appears on the Java CAPS IDE.

    Figure 1–56 Database Wizard - Summary

    Database Wizard - Summary