CA-IDMS Server Client Interface Notes: 1. Do not set the Bulk Fetch Row Count to a number greater than 255. This will cause the windows application to terminate abnormally. This bug is corrected with the 9407 genlevel of the CA-IDMS SQL Feature. This setting should generally be left at 0, which lets the driver choose the appropriate value for size of the fetch buffer. 2. The result set of the SQLTables call can be cached. Repeated SQLTables calls with the same parameters on a connection will use the cached result set if this option is off. Changing the parameters, turning cacheing off, changing the catalog accessible tables view name, and disconnecting will flush the cache. The default is no cacheing, use the Database Settings dialog of the ODBC administration application to turn it on. 3. The default for SQLTables is to use the SYSCA.ACCESSIBLE tables view. 4. The ESCAPE character '\' is supported in identifiers of the SQLTables and SQLColumns functions. 5. SQLStatistics will not update statistics even when ENSURE is specified. This can be changed using the administration application. See note below for more information. 6. All catalog functions are executed on a separate internal SQL session to reduce the chance of deadlocks and avoid problems with different page groups for the catalog and user data areas. This session consists of just one "transaction" that is set to READ ONLY and TRANSIENT READ. SQLTransact has no effect on it, nor does Autocommit. The session is started and released automatically. 7. The default Cursor Commit behavior is PRESERVE. The IDMS driver issues COMMIT CONTINUE for SQLTransact (and for Autocommit). This can be changed using the administration program. CLOSE is simulated by saving the syntax and reissuing the prepare on SQLExecute. When Cursor Commit behavior is PRESERVE, SQLGetInfo will report that Cursor Rollback behavior is also PRESERVE, even though it is actually CLOSE (there is no ROLLBACK CONTINUE SQL command). This is done so that Microsoft Access will allow attached tables to be updated. 8. Result set information functions can be called before SQLExecute (see note below). 9. The extended syntax for date and time literals using escape sequences is supported. Note that escape sequences are not supported for anything else. Escape sequences are not currently supported for date and time values passed as parameters. 10. Tracing options can be specified using the administration program, avoiding the need to manually edit the CADSI.INI file. A separate Log Options dialog box has been added to the administration program. 11. All connections from a single Windows application to a single IDMS server use the same LTERM on the server, allowing more concurrent users than previously. 12. To use Powerbuilder from Powersoft it may be necessary to add the following to the CADSI.INI file in the Windows directory: [Options] ; global options DisableEnsure=1 ;- or - [] ; data source specific options DisableEnsure=1 This will prevent the ODBC SQLStatistics function from attempting to issue an UPDATE STATISTICS FOR TABLE when the SQL_ENSURE option is specified. Powerbuilder currently specifies this option when determining what indexes exist for a table. This option is also useful to prevent SQLStatistics from attempting to update statistics for large tables. This can be a very expensive operation, and could cause the CAICCI component to time out (which will be reported as a "DTS" error, with more information in the CADSI log file). The default setting for this is 1 (on). 13. Parameters can be defined after a statement is prepared, that is, SQLSetParam can be issued after SQLPrepare (but still must be issued before SQLExecute or SQLExecuteDirect). SQLDescribeCol, SQLColAttributes, and SQLNumResultCols can be issued before SQLExecute and will cause the statement to be compiled on the server. Note that all parameters must be specified with SQLSetParam before IDMS can compile the command. 14. SQLSetConnectOption allows specification of time out interval. SQLGetConnectOption returns a value for time out interval. Time out intervals are currently specified using the CCI Configurator, and cannot actually be set or queried by ODBC. The IDMS ODBC driver appears to support them for compatibility with Microsoft Access. 15. See documentation for detailed information on IDMS ODBC conformance. 16. The CADSI.LOG file may contain error messages from the DTS component (IDMSTD0D.DLL) after a communication error. These messages may include those returned by CAICCI (LCCIWIN.DLL). The setup utility can be used to set a name and path for the log file. 17. Internal trace information can be controlled using SQLExecuteDirect. Syntax is: TRACE ODBC|IDMS OFF|ON|ALL|0xhhhh ODBC control ODBC driver trace IDMS control IDMS client interface trace OFF turn trace off ON turn on minimum trace ALL turn on all trace options 0xhhhh turn on specific trace options Trace bit definitions are included below. Trace flag settings: Debugging information can be written to CADSI.LOG. The following flag settings are provided for use by CA support staff: IDMSODBC.DLL: set in [Options] or [] section: OdbcTrace=0xXXXX where 0xXXXX can be set with the following values: 0x0001 // Trace function entry. 0x0002 // Snap environment block. 0x0004 // Snap connection block. 0x0008 // Snap statement block. 0x0010 // Snap SQLDA. IDMSQCLI.DLL: set in [Options] or [] section: IdmsTrace=0xXXXX where 0xXXXX can be set with the following values: 0x0001 // Trace IDMS calls 0x0002 // Time IDMS calls 0x0004 // Snap IDMS SQLSID 0x0008 // Snap IDMS DSICB 0x0010 // Snap IDMS SQLCA 0x0020 // Snap IDMS SQLCIB 0x0040 // Snap IDMS SQLPIB 0x0080 // Snap IDMS parm buffer 0x0100 // Snap IDMS tuple buffer 0x0200 // Snap IDMS input SQLDA 0x0400 // Snap IDMS output SQLDA 0x0800 // Snap IDMS syntax string IDMSTD0D.DLL: set in [Server ] section: DtsTrace=0xXXXX where 0xXXXX can be set with the following values: 0x0000 // no tracing 0x0001 // trace function calls 0x0002 // trace external calls 0x0004 // trace events 0x0008 // trace events 0x0010 // snap user data arrays 0x0020 // trace events 0x0040 // snap PCE 0x0080 // snap LCE IDMSTD0D.DLL: set in [Server ] section: DnsTrace=0xXXXX where 0xXXXX can be set with the following values: 0x0000 // no tracing 0x0001 // trace function calls 0x0010 // snap unconverted send data 0x0020 // snap converted send data 0x0040 // snap received data 0x0080 // snap converted received IDMSTD0D.DLL: set in [Server ] section: CmTrace=0xXXXX where 0xXXXX can be set with the following values: 0x0000 // no tracing 0x0001 // trace function calls 0x0002 // elapsed CCI call timings