DF_DRIVER_MAX_ACTIVE_STATEMENTS

The maximum number of concurrently active statements allowed per connection.

Level

Driver

Supported by

ODBC only, revision 5 and higher

Type

Integer, temporary

Access

Read/Write

Values

0..

Syntax

Use cli.pkg

 

Get_Attribute DF_DRIVER_MAX_ACTIVE_STATEMENTS of {driverNumber} to {IntegerVariable}

Set_Attribute DF_DRIVER_MAX_ACTIVE_STATEMENTS of {driverNumber} to {IntegerVariable}

Driver Configuration Keyword

Max_Active_Statements

Remarks

The maximum number of concurrently active statements allowed per connection. 0 (zero) means there is no limit.

This attribute can be queried through ODBC, but we have found that some drivers do not return a reliable value. The value of the attribute is used by the driver to determine the size of the statement pool. The driver keeps track of the statements that are used per connection in a 'Most Recently Used' sorted list. If the maximum number of statements is in use, the least recently used statement will be freed whenever an additional statement is required.

Some ODBC drivers return a value of 1 for this attribute. This will make the driver free and re-allocate statements all the time. For some drivers, the value is accurate (e.g. MS Jet Engine ODBC Driver) but for others it is not (e.g. Oracle ODBC Driver).

This default value is copied to database level when logging in to the database. The actual value in use for an active connection is that on database level. This attribute merely reflects a default.

Function DriverIndex String sDriver Returns Integer

    String  sCurrentDriver

    Integer iNumberOfDrivers iDriver iCount

 

    Move 0 to iDriver

    Get_Attribute DF_NUMBER_DRIVERS to iNumberOfDrivers

    For iCount From 1 To iNumberOfDrivers

        Get_Attribute DF_DRIVER_NAME of iCount To sCurrentDriver

        If ( Uppercase(sCurrentDriver) = Uppercase(sDriver) ) Begin

            Move iCount to iDriver

        End

    Loop

 

    Function_Return iDriver

End_Function

 

Procedure ShowDriverAttribute

    Integer iAttribValue iDriver

 

    Get DriverIndex "MSSQLDRV" to iDriver

    Get_Attribute DF_DATABASE_MAX_ACTIVE_STATEMENTS of iDriver to iAttribValue      

    Showln "Max active statements per connection: " ;

        (If(iAttribValue = 0, " unlimited", String(iAttribValue)))

End_Procedure                                                          

The sample code above shows the current setting for a given driver.