Catalogue Command (ODBC Only)
Returns meta data about indexes used with a tables.
primarykeys DATABASE SCHEMA TABLE
DATABASE
Catalog/database name.
SCHEMA
Schema name or Table Owner
TABLE
Table name of the table to be processed.
Description
Use this command to obtain information about the primary keys for a table. The application must have been logged into a data source using the login command, otherwise the following error message will be displayed:
Error: Not connected to database
Certain database management systems do not support different "Database" (or Catalogue) or "Schema" (or Table Owner), if so, a null string needs to be passed as the first and/or second parameter using the syntax '' (i.e. two single quotes).
If the parameters are valid, a result set will be returned containing one row as there must be only a single key column that connects two tables.The row contains a number of fields, the actual number may increase, dependent of the ODBC version, but will always start with the following:
Column Name  | 
Column Number  | 
Comment  | 
TABLE_CAT  | 
1  | 
Table catalog name; NULL if not applicable to the data source.  | 
TABLE_SCHEM  | 
2  | 
Table schema name; NULL if not applicable to the data source.  | 
TABLE_NAME  | 
3  | 
Table name.  | 
COLUMN_NAME  | 
4  | 
Primary key column name. The driver returns an empty string for a column that does not have a name.  | 
KEY_SEQ  | 
5  | 
Column sequence number in key (starting with 1).  | 
PK_NAME  | 
6  | 
Primary key name. NULL if not applicable to the data source.  | 
If the parameters are invalid, then an error message "ERROR: Failed to obtain primary key information" will be returned.
Example
subroutine GetPrimaryKeys(string: TableOwner_SV, string: Table_SV, string: KeyList_SV) is
string Column_LSV
copy "" to KeyList_SV
begin guarded
response to start
send "primarykeys '' " TableOwner_SV " " Table1_SV "\n" to SQL
response to "SQL>" from SQL
leave block
response to line from SQL
extract from input
skip by "~" # Catalog
skip by "~" # Schema
skip by "~" # Table
take to "~" Column_LSV
append Column_LSV "\n" to KeyList_SV
end