Functionality added or changed:
The following ODBC APIs are newly supported by CUBRID ODBC:
All four functions are catalog functions, which can get schema information of database you connect to. CUBRID schema information is stored in system catalog table, so you can also get this information from system catalog virtual table using SQL statement.
Database schema information is important for data modeling tools like CA ERwin Data Modeler, which enables you to visualize complex data structures. It uses schema information, for example, tables of database, columns and attributes of table, the primary and foreign keys of table, and relationships between tables and so on, to get the structure of the database.
- SQLPrimaryKeys returns the column names that make up the primary key for a table.
- SQLForeignKeys can return:
- A list of foreign keys in the specified table (columns in the specified table that refer to primary keys in other tables).
- A list of foreign keys in other tables that refer to the primary key in the specified table.
- SQLProcedures returns returns the list of function/procedure names stored in a specific data source.
- Stored functions/procedures are blocks of code that have a flow of commands for data manipulation and are easy to manipulate and administer. CUBRID supports to develop stored functions and procedures in Java. Java stored functions/procedures are executed on the JVM (Java Virtual Machine) hosted by CUBRID.
- SQLProcedureColumns returns the list of input and output parameters for the specified procedures, but not including the return columns.
- SQLTablePrivileges returns a list of tables and the privileges associated with each table, which represents authorization information of the classes for which the current user has authorization in the database.
- SQLFetchScroll: When parameter FetchOrientation is SQL_FETCH_LAST, SQLFetchScroll should return the last complete rowset in the result set. But it will return the first, not the last.
- SQLFetchScroll is used to fetches the specified rowset of data from the result set and returns data for all bound columns. Rowsets can be specified at an absolute or relative position or by bookmark.
- SQLSetPos: Application will crash when calling SQLSetPos.
- SQLSetPos sets the cursor position in a rowset and allows an application to refresh, update or delete data in the result set.
- SQLSetPos: The default value of statement attribute SQL_ATTR_ROW_ARRAY_SIZE is 1, which is the number of rows returned by each call to SQLFetch or SQLFetchScroll. If we set this attribute to value that is more than 1, SQLSetPos can't work correctly.
- SQLStatistics and SQLSpecialColumns: The results of the two catalog functions are not valid.
SQLStatistics retrieves a list of statistics about a single table and the indexes associated with the table. SQLSpecialColumns retrieves the following information about columns within a specified table:
- When IdentifierType is SQL_BEST_ROWID, it will return information of columns that uniquely identifies a row in the table;
- When IdentifierType is SQL_ROWVER, it will return information of columns that are automatically updated when any value in the row is updated by a transaction.
No data type in CUBRID will auto-update, so it only can return the columns which compose the unique keys.