Supported DBMS features when calling stored procedures

When you define and use a custom Transaction object to call remote stored procedures in your application, the features supported depend on the DBMS to which your application connects.

The following sections describe the supported features for some of the DBMSs that you can access in PowerBuilder. Read the section for your DBMS to determine what you can and cannot do when using the RPC technique in a PowerBuilder application.

Result sets

You cannot use the remote procedure call technique to access result sets returned by stored procedures. If the stored procedure returns one or more result sets, PowerBuilder ignores the values and returns the output parameters and return value.

If your stored procedure returns a result set, you can use the embedded SQL DECLARE Procedure statement to call it. For information about the DECLARE Procedure statement, see SQL Statements in PowerScript Reference.

Informix

If your application connects to an Informix database, you can use simple nonarray datatypes. You cannot use binary large objects (blobs).

ODBC

If your application connects to an ODBC data source, you can use the following ODBC features if the back-end driver supports them. (For information, see the documentation for your ODBC driver.)

  • IN, OUT, and IN OUT parameters, as shown in the following table.

    Parameter

    What happens

    IN

    An IN variable is passed by value and indicates a value being passed to the procedure.

    OUT

    An OUT variable is passed by reference and indicates that the procedure can modify the PowerScript variable that was passed. Use the PowerScript REF keyword for this parameter type.

    IN OUT

    An IN OUT variable is passed by reference and indicates that the procedure can reference the passed value and can modify the PowerScript variable. Use the PowerScript REF keyword for this parameter type.


  • Blobs as parameters. You can use blobs that are up to 32,512 bytes long.

  • Integer return codes.

Oracle

If your application connects to an Oracle database, you can use the following Oracle PL/SQL features:

  • IN, OUT, and IN OUT parameters, as shown in the following table.

    Parameter

    What happens

    IN

    An IN variable is passed by value and indicates a value being passed to the procedure.

    OUT

    An OUT variable is passed by reference and indicates that the procedure can modify the PowerScript variable that was passed. Use the PowerScript REF keyword for this parameter type.

    IN OUT

    An IN OUT variable is passed by reference and indicates that the procedure can reference the passed value and can modify the PowerScript variable. Use the PowerScript REF keyword for this parameter type.


  • Blobs as parameters. You can use blobs that are up to 32,512 bytes long.

  • PL/SQL tables as parameters. You can use PowerScript arrays.

  • Function return codes.

Microsoft SQL Server or SAP Adaptive Server Enterprise

If your application connects to a Microsoft SQL Server or SAP Adaptive Server Enterprise database, you can use the following Transact-SQL features:

  • IN, OUT, and IN OUT parameters, as shown in the following table.

    Parameter

    What happens

    IN

    An IN variable is passed by value and indicates a value being passed to the procedure.

    OUT

    An OUT variable is passed by reference and indicates that the procedure can modify the PowerScript variable that was passed. Use the PowerScript REF keyword for this parameter type.

    IN OUT

    An IN OUT variable is passed by reference and indicates that the procedure can reference the passed value and can modify the PowerScript variable. Use the PowerScript REF keyword for this parameter type.


  • Blobs as parameters. You can use blobs that are up to 32,512 bytes long.

  • Integer return codes.

SQL Anywhere

If your application connects to a SQL Anywhere database, you can use the following SQL Anywhere features:

  • IN, OUT, and IN OUT parameters, as shown in the following table.

    Parameter

    What happens

    IN

    An IN variable is passed by value and indicates a value being passed to the procedure.

    OUT

    An OUT variable is passed by reference and indicates that the procedure can modify the PowerScript variable that was passed. Use the PowerScript REF keyword for this parameter type.

    IN OUT

    An IN OUT variable is passed by reference and indicates that the procedure can reference the passed value and can modify the PowerScript variable. Use the PowerScript REF keyword for this parameter type.


  • Blobs as parameters. You can use blobs that are up to 32,512 bytes long.