/* -*- C -*- */ /* sqlcli.h Header File for SQL CLI. * The actual header file must contain at least the information * specified here, except that the comments may vary. * * This file is adapted for PostgreSQL * from the SQL98 August 1994 draft standard. * Thomas G. Lockhart 1999-06-16 * * Updated from Date and Darwen, 1997, with some definitions * not in the SQL3 August 1994 draft standard * - Thomas Lockhart 1999-06-17 */ /* API declaration data types */ typedef unsigned char SQLCHAR; typedef long SQLINTEGER; typedef short SQLSMALLINT; typedef double SQLDOUBLE; typedef float SQLREAL; typedef void *SQLPOINTER; typedef unsigned char SQLDATE; typedef unsigned char SQLTIME; typedef unsigned char SQLTIMESTAMP; typedef unsigned char SQLDECIMAL; typedef unsigned char SQLNUMERIC; /* function return type */ typedef SQLSMALLINT SQLRETURN; /* generic data structures */ typedef SQLINTEGER SQLHENV; /* environment handle */ typedef SQLINTEGER SQLHDBC; /* connection handle */ typedef SQLINTEGER SQLHSTMT; /* statement handle */ typedef SQLINTEGER SQLHDESC; /* descriptor handle */ /* special length/indicator values */ #define SQL_NULL_DATA -1 #define SQL_DATA_AT_EXEC -2 /* return values from functions */ #define SQL_SUCCESS 0 #define SQL_SUCCESS_WITH_INFO 1 #define SQL_NEED_DATA 99 #define SQL_NO_DATA 100 #define SQL_ERROR -1 #define SQL_INVALID_HANDLE -2 /* test for SQL_SUCCESS or SQL_SUCCESS_WITH_INFO */ #define SQL_SUCCEEDED(rc) (((rc)&(~1))==0) /* flags for null-terminated string */ #define SQL_NTS -3 #define SQL_NTSL -3L /* maximum message length from Date and Darwen * was 255 in the August 1994 draft standard * - Thomas Lockhart 1999-06-17 */ #define SQL_MAX_MESSAGE_LENGTH 512 /* maximum identifier length */ #define SQL_MAX_ID_LENGTH 18 /* date/time length constants */ /* add p+1 for time and timestamp if precision is nonzero */ #define SQL_DATE_LEN 10 #define SQL_TIME_LEN 8 #define SQL_TIMESTAMP_LEN 19 /* handle type identifiers */ #define SQL_HANDLE_ENV 1 #define SQL_HANDLE_DBC 2 #define SQL_HANDLE_STMT 3 #define SQL_HANDLE_DESC 4 /* environment attribute */ #define SQL_ATTR_OUTPUT_NTS 10001 /* connection attribute */ #define SQL_ATTR_AUTO_IPD 10001 /* statement attributes */ #define SQL_ATTR_APP_ROW_DESC 10010 #define SQL_ATTR_APP_PARAM_DESC 10011 #define SQL_ATTR_IMP_ROW_DESC 10012 #define SQL_ATTR_IMP_PARAM_DESC 10013 #define SQL_ATTR_CURSOR_SCROLLABLE -1 #define SQL_ATTR_CURSOR_SENSITIVITY -2 /* identifiers of fields in the SQL descriptor */ /* These ran 1-99 in the August 1994 draft standard * - Thomas Lockhart 1999-06-17 */ #define SQL_DESC_COUNT 1001 #define SQL_DESC_TYPE 1002 #define SQL_DESC_LENGTH 1003 #define SQL_DESC_OCTET_LENGTH_POINTER 1004 #define SQL_DESC_PRECISION 1005 #define SQL_DESC_SCALE 1006 #define SQL_DESC_DATETIME_INTERVAL_CODE 1007 #define SQL_DESC_NULLABLE 1008 #define SQL_DESC_INDICATOR_POINTER 1009 #define SQL_DESC_DATA_POINTER 1010 #define SQL_DESC_NAME 1011 #define SQL_DESC_UNNAMED 1012 #define SQL_DESC_OCTET_LENGTH 1013 #define SQL_DESC_DATETIME_INTERVAL_PRECISION 1014 #define SQL_DESC_COLLATION_CATALOG 1015 #define SQL_DESC_COLLATION_SCHEMA 1016 #define SQL_DESC_COLLATION_NAME 1017 #define SQL_DESC_CHARACTER_SET_CATALOG 1018 #define SQL_DESC_CHARACTER_SET_SCHEMA 1019 #define SQL_DESC_CHARACTER_SET_NAME 1020 #define SQL_DESC_PARAMETER_MODE 1021 #define SQL_DESC_PARAMETER_ORDINAL_POSITION 1022 #define SQL_DESC_PARAMETER_SPECIFIC_CATALOG 1023 #define SQL_DESC_PARAMETER_SPECIFIC_SCHEMA 1024 #define SQL_DESC_PARAMETER_SPECIFIC_NAME 1025 #define SQL_DESC_ALLOC_TYPE 1099 /* identifiers of fields in the diagnostics area */ /* Many new definitions since August 1994 draft standard * - Thomas Lockhart 1999-06-17 */ #define SQL_DIAG_RETURNCODE 1 #define SQL_DIAG_NUMBER 2 #define SQL_DIAG_ROW_COUNT 3 #define SQL_DIAG_SQLSTATE 4 #define SQL_DIAG_NATIVE 5 #define SQL_DIAG_MESSAGE_TEXT 6 #define SQL_DIAG_DYNAMIC_FUNCTION 7 #define SQL_DIAG_CLASS_ORIGIN 8 #define SQL_DIAG_SUBCLASS_ORIGIN 9 #define SQL_DIAG_CONNECTION_NAME 10 #define SQL_DIAG_SERVER_NAME 11 #define SQL_DIAG_DYNAMIC_FUNCTION_CODE 12 #define SQL_DIAG_MORE 13 #define SQL_DIAG_CONDITION_NUMBER 14 #define SQL_DIAG_CONSTRAINT_CATALOG 15 #define SQL_DIAG_CONSTRAINT_SCHEMA 16 #define SQL_DIAG_CONSTRAINT_NAME 17 #define SQL_DIAG_CATALOG_NAME 18 #define SQL_DIAG_SCHEMA_NAME 19 #define SQL_DIAG_TABLE_NAME 20 #define SQL_DIAG_COLUMN_NAME 21 #define SQL_DIAG_CURSOR_NAME 22 #define SQL_DIAG_MESSAGE_LENGTH 23 #define SQL_DIAG_MESSAGE_OCTET_LENGTH 24 /* dynamic function codes returned in diagnostics area */ #define SQL_DIAG_ALTER_DOMAIN 3 #define SQL_DIAG_ALTER_TABLE 4 #define SQL_DIAG_CREATE_ASSERTION 6 #define SQL_DIAG_CREATE_CHARACTER_SET 8 #define SQL_DIAG_CREATE_COLLATION 10 #define SQL_DIAG_CREATE_DOMAIN 23 #define SQL_DIAG_CREATE_SCHEMA 64 #define SQL_DIAG_CREATE_TABLE 77 #define SQL_DIAG_CREATE_TRANSLATION 79 #define SQL_DIAG_CREATE_VIEW 84 #define SQL_DIAG_DELETE_WHERE 19 #define SQL_DIAG_DROP_ASSERTION 24 #define SQL_DIAG_DROP_CHARACTER_SET 25 #define SQL_DIAG_DROP_COLLATION 26 #define SQL_DIAG_DROP_DOMAIN 27 #define SQL_DIAG_DROP_SCHEMA 31 #define SQL_DIAG_DROP_TABLE 32 #define SQL_DIAG_DROP_TRANSLATION 33 #define SQL_DIAG_DROP_VIEW 36 #define SQL_DIAG_DYNAMIC_DELETE_CURSOR 54 #define SQL_DIAG_DYNAMIC_UPDATE_CURSOR 55 #define SQL_DIAG_GRANT 48 #define SQL_DIAG_INSERT 50 #define SQL_DIAG_REVOKE 59 #define SQL_DIAG_SELECT 41 #define SQL_DIAG_SELECT_CURSOR 85 #define SQL_DIAG_SET_CATALOG 66 #define SQL_DIAG_SET_CONSTRAINT 68 #define SQL_DIAG_SET_NAMES 72 #define SQL_DIAG_SET_SCHEMA 74 #define SQL_DIAG_SET_SESSION_AUTHORIZATION 76 #define SQL_DIAG_SET_TIME_ZONE 71 #define SQL_DIAG_SET_TRANSACTION 75 #define SQL_DIAG_UNKNOWN_STATEMENT 0 #define SQL_DIAG_UPDATE_WHERE 82 /* SQL data type codes */ #define SQL_CHAR 1 #define SQL_NUMERIC 2 #define SQL_DECIMAL 3 #define SQL_INTEGER 4 #define SQL_SMALLINT 5 #define SQL_FLOAT 6 #define SQL_REAL 7 #define SQL_DOUBLE 8 #define SQL_DATETIME 9 #define SQL_INTERVAL 10 #define SQL_VARCHAR 12 #define SQL_BIT 14 #define SQL_BIT_VARYING 15 /* One-parameter shortcuts for datetime data types */ #define SQL_TYPE_DATE 91 #define SQL_TYPE_TIME 92 #define SQL_TYPE_TIME_WITH_TIMEZONE 93 #define SQL_TYPE_TIMESTAMP 94 #define SQL_TYPE_TIMESTAMP_WITH_TIMEZONE 95 #define SQL_INTERVAL_DAY 103 #define SQL_INTERVAL_DAY_TO_HOUR 108 #define SQL_INTERVAL_DAY_TO_MINUTE 109 #define SQL_INTERVAL_DAY_TO_SECOND 110 #define SQL_INTERVAL_HOUR 104 #define SQL_INTERVAL_HOUR_TO_MINUTE 111 #define SQL_INTERVAL_HOUR_TO_SECOND 112 #define SQL_INTERVAL_MINUTE 105 #define SQL_INTERVAL_MINUTE_TO_SECOND 113 #define SQL_INTERVAL_MONTH 102 #define SQL_INTERVAL_SECOND 106 #define SQL_INTERVAL_YEAR 101 #define SQL_INTERVAL_YEAR_TO_MONTH 107 /* GetTypeInfo request for all data types */ #define SQL_ALL_TYPES 0 /* BindCol() and BindParam() default conversion code */ #define SQL_DEFAULT 99 /* GetData code indicating that the application parameter */ /* descriptor specifies the data type */ #define SQL_ARD_TYPE -99 /* date/time type subcodes */ #define SQL_CODE_DATE 1 #define SQL_CODE_TIME 2 #define SQL_CODE_TIMESTAMP 3 #define SQL_CODE_TIME_ZONE 4 #define SQL_CODE_TIMESTAMP_ZONE 5 /* interval qualifier codes */ #define SQL_DAY 3 #define SQL_DAY_TO_HOUR 8 #define SQL_DAY_TO_MINUTE 9 #define SQL_DAY_TO_SECOND 10 #define SQL_HOUR 4 #define SQL_HOUR_TO_MINUTE 11 #define SQL_HOUR_TO_SECOND 12 #define SQL_MINUTE 5 #define SQL_MINUTE_TO_SECOND 13 #define SQL_MONTH 2 #define SQL_SECOND 6 #define SQL_YEAR 1 #define SQL_YEAR_TO_MONTH 7 /* CLI option values */ #define SQL_FALSE 0 #define SQL_TRUE 1 #define SQL_NONSCROLLABLE 0 #define SQL_SCROLLABLE 1 /* parameter modes */ #define SQL_PARAM_MODE_IN 1 #define SQL_PARAM_MODE_OUT 4 #define SQL_PARAM_MODE_INOUT 2 #define SQL_PARAM_MODE_NONE 0 /* values of NULLABLE field in descriptor */ #define SQL_NO_NULLS 0 #define SQL_NULLABLE 1 /* Values returned by GetTypeInfo for the SEARCHABLE column */ #define SQL_PRED_NONE 0 #define SQL_PRED_CHAR 1 #define SQL_PRED_BASIC 2 /* values of UNNAMED field in descriptor */ #define SQL_NAMED 0 #define SQL_UNNAMED 1 /* values of ALLOC_TYPE field in descriptor */ #define SQL_DESC_ALLOC_AUTO 1 #define SQL_DESC_ALLOC_USER 2 /* EndTran() options */ #define SQL_COMMIT 0 #define SQL_ROLLBACK 1 /* FreeStmt() options */ #define SQL_CLOSE 0 #define SQL_DROP 1 #define SQL_UNBIND 2 #define SQL_RESET_PARAMS 3 /* null handles returned by AllocHandle() */ #define SQL_NULL_HENV 0 #define SQL_NULL_HDBC 0 #define SQL_NULL_HSTMT 0 #define SQL_NULL_HDESC 0 /* GetFunctions values to identify CLI routines */ #define SQL_API_SQLALLOCCONNECT 1 #define SQL_API_SQLALLOCENV 2 #define SQL_API_SQLALLOCHANDLE 1001 #define SQL_API_SQLALLOCSTMT 3 #define SQL_API_SQLBINDCOL 4 #define SQL_API_SQLBINDPARAM 1002 #define SQL_API_SQLCANCEL 5 #define SQL_API_SQLCLOSECURSOR 1003 #define SQL_API_SQLCOLATTRIBUTE 6 #define SQL_API_SQLCONNECT 7 #define SQL_API_SQLCOPYDESC 1004 #define SQL_API_SQLDATASOURCES 57 #define SQL_API_SQLDESCRIBECOL 8 #define SQL_API_SQLDISCONNECT 9 #define SQL_API_SQLENDTRAN 1005 #define SQL_API_SQLERROR 10 #define SQL_API_SQLEXECDIRECT 11 #define SQL_API_SQLEXECUTE 12 #define SQL_API_SQLFETCH 13 #define SQL_API_SQLFETCHSCROLL 1021 #define SQL_API_SQLFREECONNECT 14 #define SQL_API_SQLFREEENV 15 #define SQL_API_SQLFREEHANDLE 1006 #define SQL_API_SQLFREESTMT 16 #define SQL_API_SQLGETCONNECTATTR 1007 #define SQL_API_SQLGETCURSORNAME 17 #define SQL_API_SQLGETDATA 43 #define SQL_API_SQLGETDESCFIELD 1008 #define SQL_API_SQLGETDESCREC 1009 #define SQL_API_SQLGETDIAGFIELD 1010 #define SQL_API_SQLGETDIAGREC 1011 #define SQL_API_SQLGETENVATTR 1012 #define SQL_API_SQLGETFUNCTIONS 44 #define SQL_API_SQLGETINFO 45 #define SQL_API_SQLGETSTMTATTR 1014 #define SQL_API_SQLGETTYPEINFO 47 #define SQL_API_SQLNUMRESULTCOLS 18 #define SQL_API_SQLPARAMDATA 48 #define SQL_API_SQLPREPARE 19 #define SQL_API_SQLPUTDATA 49 #define SQL_API_SQLRELEASEENV 1015 /* Obsolete? */ #define SQL_API_SQLROWCOUNT 20 #define SQL_API_SQLSCROLLFETCH 1021 /* Obsolete? */ #define SQL_API_SQLSETCONNECTATTR 1016 #define SQL_API_SQLSETCURSORNAME 21 #define SQL_API_SQLSETDESCFIELD 1017 #define SQL_API_SQLSETDESCREC 1018 #define SQL_API_SQLSETENVATTR 1019 #define SQL_API_SQLSETSTMTATTR 1020 /* information requested by GetInfo */ #define SQL_MAXIMUM_DRIVER_CONNECTIONS 0 #define SQL_MAXIMUM_CONCURRENT_ACTIVITIES 1 #define SQL_DATA_SOURCE_NAME 2 #define SQL_FETCH_DIRECTION 8 #define SQL_SERVER_NAME 13 #define SQL_DBMS_NAME 17 #define SQL_DBMS_VERSION 18 #define SQL_CURSOR_COMMIT_BEHAVIOR 23 #define SQL_DATA_SOURCE_READ_ONLY 25 #define SQL_DEFAULT_TRANSACTION_ISOLATION 26 #define SQL_IDENTIFIER_CASE 28 #define SQL_MAXIMUM_COLUMN_NAME_LENGTH 30 #define SQL_MAXIMUM_CURSOR_NAME_LENGTH 31 #define SQL_MAXIMUM_SCHEMA_NAME_LENGTH 32 #define SQL_MAXIMUM_CATALOG_NAME_LENGTH 34 #define SQL_MAXIMUM_TABLE_NAME_LENGTH 35 #define SQL_SCROLL_CONCURRENCY 43 #define SQL_TRANSACTION_CAPABLE 46 #define SQL_USER_NAME 47 #define SQL_TRANSACTION_ISOLATION_OPTION 72 #define SQL_INTEGRITY 73 #define SQL_GETDATA_EXTENSIONS 81 #define SQL_NULL_COLLATION 85 #define SQL_ALTER_TABLE 86 #define SQL_ORDER_BY_COLUMNS_IN_SELECT 90 #define SQL_SPECIAL_CHARACTERS 94 #define SQL_MAXIMUM_COLUMNS_IN_GROUP_BY 97 #define SQL_MAXIMUM_COLUMNS_IN_ORDER_BY 99 #define SQL_MAXIMUM_COLUMNS_IN_SELECT 100 #define SQL_MAXIMUM_COLUMNS_IN_TABLE 101 #define SQL_MAXIMUM_STATEMENT_LENGTH 105 #define SQL_MAXIMUM_TABLES_IN_SELECT 106 #define SQL_MAXIMUM_USER_NAME_LENGTH 107 #define SQL_OUTER_JOIN_CAPABILITIES 115 #define SQL_CURSOR_SENSITIVITY 10001 #define SQL_DESCRIBE_PARAMETER 10002 #define SQL_CATALOG_NAME 10003 #define SQL_COLLATING_SEQUENCE 10004 #define SQL_MAXIMUM_IDENTIFIER_LENGTH 10005 /* S-resource attribute values for cursor sensitivity */ #define SQL_UNSPECIFIED 0x00000000L #define SQL_INSENSITIVE 0x00000001L /* null handle used when allocating HENV */ #define SQL_NULL_HANDLE 0L /* SQL_ALTER_TABLE bitmasks */ #define SQL_AT_ADD_COLUMN 0x00000001L #define SQL_AT_DROP_COLUMN 0x00000002L #define SQL_AT_ALTER_COLUMN 0x00000004L #define SQL_AT_ADD_CONSTRAINT 0x00000008L #define SQL_AT_DROP_CONSTRAINT 0x00000010L /* SQL_CURSOR_COMMIT_BEHAVIOR values */ #define SQL_CB_DELETE 0 #define SQL_CB_CLOSE 1 #define SQL_CB_PRESERVE 2 /* SQL_FETCH_DIRECTION bitmasks */ #define SQL_FD_FETCH_NEXT 0x00000001L #define SQL_FD_FETCH_FIRST 0x00000002L #define SQL_FD_FETCH_LAST 0x00000004L #define SQL_FD_FETCH_PRIOR 0x00000008L #define SQL_FD_FETCH_ABSOLUTE 0x00000010L #define SQL_FD_FETCH_RELATIVE 0x00000020L /* SQL_GETDATA_EXTENSIONS bitmasks */ #define SQL_GD_ANY_COLUMN 0x00000001L #define SQL_FD_ANY_ORDER 0x00000002L /* SQL_IDENTIFIER_CASE values */ #define SQL_IC_UPPER 1 #define SQL_IC_LOWER 2 #define SQL_IC_SENSITIVE 3 #define SQL_IC_MIXED 4 /* SQL_IDENTIFIER_CASE values */ #define SQL_NC_HIGH 1 #define SQL_NC_LOW 2 /* SQL_OUTER_JOIN_CAPABILITIES bitmasks */ #define SQL_OUTER_JOIN_LEFT 0x00000001L #define SQL_OUTER_JOIN_RIGHT 0x00000002L #define SQL_OUTER_JOIN_FULL 0x00000004L #define SQL_OUTER_JOIN_NESTED 0x00000008L #define SQL_OUTER_JOIN_NOT_ORDERED 0x00000010L #define SQL_OUTER_JOIN_INNER 0x00000020L #define SQL_OUTER_JOIN_ALL_COMPARISION_OPS 0x00000040L /* SQL_SCROLL_CONCURRENCY bitmasks */ #define SQL_SCCO_READ_ONLY 0x00000001L #define SQL_SCCO_LOCK 0x00000002L #define SQL_SCCO_OPT_ROWVER 0x00000004L #define SQL_SCCO_OPT_VALUES 0x00000008L /* SQL_IDENTIFIER_CASE values */ #define SQL_TC_NONE 0 #define SQL_TC_DML 1 #define SQL_TC_ALL 2 #define SQL_TC_DDL_COMMIT 3 #define SQL_TC_DDL_IGNORE 4 /* SQL_TRANSACTION_ISOLATION bitmasks */ #define SQL_TRANSACTION_READ_UNCOMMITTED 0x00000001L #define SQL_TRANSACTION_READ_COMMITTED 0x00000002L #define SQL_TRANSACTION_READ_REPEATABLE_READ 0x00000004L #define SQL_TRANSACTION_READ_SERIALIZABLE 0x00000008L #define SQL_TRANSACTION_READ_UNCOMMITTED 0x00000001L #define SQL_TRANSACTION_READ_UNCOMMITTED 0x00000001L #define SQL_FD_FETCH_NEXT 0x00000001L /* CLI function signatures */ SQLRETURN SQLAllocConnect(SQLHENV EnvironmentHandle, SQLHDBC * ConnectionHandle); SQLRETURN SQLAllocEnv(SQLHENV * EnvironmentHandle); SQLRETURN SQLAllocHandle(SQLSMALLINT HandleType, SQLINTEGER InputHandle, SQLINTEGER * OutputHandle); SQLRETURN SQLAllocStmt(SQLHDBC ConnectionHandle, SQLSTMT * StatementHandle); SQLRETURN SQLBindCol(SQLHSTMT StatementHandle, SQLSMALLINT ColumnNumber, SQLSMALLINT BufferType, SQLPOINTER Data, SQLINTEGER BufferLength, SQLINTEGER * DataLength); SQLRETURN SQLBindParam(SQLHSTMT StatementHandle, SQLSMALLINT ParamNumber, SQLSMALLINT BufferType, SQLSMALLINT ParamType, SQLINTEGER ParamLength, SQLSMALLINT Scale, SQLPOINTER Data, SQLINTEGER * DataLength); SQLRETURN SQLCancel(SQLHSTMT StatementHandle); SQLRETURN SQLCloseCursor(SQLHSTMT StatementHandle); SQLRETURN SQLColAttribute(SQLHSTMT StatementHandle, SQLSMALLINT ColumnNumber, SQLSMALLINT FieldIdentifier, SQLCHAR * CharacterAttribute, SQLINTEGER BufferLength, SQLINTEGER * AttributetLength, SQLINTEGER * NumericAttribute); SQLRETURN SQLConnect(SQLHDBC ConnectionHandle, SQLCHAR * ServerName, SQLSMALLINT NameLength1, SQLCHAR * UserName, SQLSMALLINT NameLength2, SQLCHAR * Authentication, SQLSMALLINT NameLength3); SQLRETURN SQLCopyDesc(SQLHDESC SourceDescHandle, SQLHDESC TargetDescHandle); SQLRETURN SQLDataSources(SQLHENV EnvironmentHandle, SQLSMALLINT Direction, SQLCHAR * ServerName, SQLSMALLINT BufferLength1, SQLSMALLINT * NameLength1, SQLCHAR * Description, SQLSMALLINT BufferLength2, SQLSMALLINT * NameLength2); SQLRETURN SQLDescribeCol(SQLHSTMT StatementHandle, SQLSMALLINT ColumnNumber, SQLCHAR * ColumnName, SQLSMALLINT BufferLength, SQLSMALLINT * ColumnNameLength, SQLSMALLINT * ColumnType, SQLINTEGER * ColumnLength, SQLSMALLINT * ColumnScale, SQLSMALLINT * Nullable); SQLRETURN SQLDisconnect(SQLHDBC ConnectionHandle); SQLRETURN SQLEndTran(SQLSMALLINT HandleType, SQLHENV Handle, SQLSMALLINT CompletionType); SQLRETURN SQLError(SQLHENV EnvironmentHandle, SQLHDBC ConnectionHandle, SQLSTMT StatementHandle, SQLCHAR * Sqlstate, SQLINTEGER * NativeError, SQLCHAR * MessageText, SQLINTEGER BufferLength, SQLINTEGER * TextLength); SQLRETURN SQLExecDirect(SQLHSTMT StatementHandle, SQLCHAR * StatementText, SQLSMALLINT StringLength); SQLRETURN SQLExecute(SQLHSTMT StatementHandle); SQLRETURN SQLFetch(SQLHSTMT StatementHandle); SQLRETURN SQLFetchScroll(SQLHSTMT StatementHandle, SQLSMALLINT FetchOrientation, SQLINTEGER FetchOffset); SQLRETURN SQLFreeConnect(SQLHDBC ConnectionHandle); SQLRETURN SQLFreeEnv(SQLHENV EnvironmentHandle); SQLRETURN SQLFreeHandle(SQLSMALLINT HandleType, SQLINTEGER Handle); SQLRETURN SQLFreeStmt(SQLHSTMT StatementHandle); SQLRETURN SQLGetConnectAttr(SQLHDBC ConnectionHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER BufferLength, SQLINTEGER * StringLength); SQLRETURN SQLGetCursorName(SQLHSTMT StatementHandle, SQLCHAR * CursorName, SQLSMALLINT BufferLength, SQLSMALLINT * NameLength); SQLRETURN SQLGetData(SQLHSTMT StatementHandle, SQLSMALLINT ColumnNumber, SQLSMALLINT TargetType, SQLPOINTER TargetValue, SQLINTEGER BufferLength, SQLINTEGER * IndicatorValue); SQLRETURN SQLGetDescField(SQLHDESC DescriptorHandle, SQLSMALLINT RecordNumber, SQLSMALLINT FieldIdentifier, SQLPOINTER Value, SQLINTEGER BufferLength, SQLINTEGER * StringLength); SQLRETURN SQLGetDescRec(SQLHDESC DescriptorHandle, SQLSMALLINT RecordNumber, SQLCHAR * Name, SQLSMALLINT BufferLength, SQLSMALLINT * StringLength, SQLSMALLINT * Type, SQLSMALLINT * SubType, SQLINTEGER * Length, SQLSMALLINT * Precision, SQLSMALLINT * Scale, SQLSMALLINT * Nullable); SQLRETURN SQLGetDiagField(SQLSMALLINT HandleType, SQLINTEGER Handle, SQLSMALLINT RecordNumber, SQLSMALLINT DiagIdentifier, SQLPOINTER DiagInfo, SQLSMALLINT BufferLength, SQLSMALLINT * StringLength); SQLRETURN SQLGetDiagRec(SQLSMALLINT HandleType, SQLINTEGER Handle, SQLSMALLINT RecordNumber, SQLCHAR * Sqlstate, SQLINTEGER * NativeError, SQLCHAR * MessageText, SQLSMALLINT BufferLength, SQLSMALLINT * StringLength); SQLRETURN SQLGetEnvAttr(SQLHENV EnvironmentHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER BufferLength, SQLINTEGER * StringLength); SQLRETURN SQLGetFunctions(SQLHDBC ConnectionHandle, SQLSMALLINT FunctionId, SQLSMALLINT * Supported); SQLRETURN SQLGetInfo(SQLHDBC ConnectionHandle, SQLSMALLINT InfoType, SQLPOINTER InfoValue, SQLSMALLINT BufferLength, SQLSMALLINT * StringLength); SQLRETURN SQLGetStmtAttr(SQLHSTMT StatementHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER BufferLength, SQLINTEGER * StringLength); SQLRETURN SQLGetTypeInfo(SQLHSTMT StatementHandle, SQLSMALLINT DataType); SQLRETURN SQLNumResultCols(SQLHSTMT StatementHandle, SQLINTEGER * ColumnCount); SQLRETURN SQLParamData(SQLHSTMT StatementHandle, SQLPOINTER * Value); SQLRETURN SQLPrepare(SQLHSTMT StatementHandle, SQLCHAR * StatementText, SQLSMALLINT StringLength); SQLRETURN SQLPutData(SQLHSTMT StatementHandle, SQLPOINTER Data, SQLINTEGER StringLength); SQLRETURN SQLRowCount(SQLHSTMT StatementHandle, SQLINTEGER * RowCount); SQLRETURN SQLSetConnectAttr(SQLHDBC ConnectionHandle, SQLINTEGER AttributeCursorName, SQLPOINTER Value, SQLINTEGER StringLength); SQLRETURN SQLSetCursorName(SQLHSTMT StatementHandle, SQLCHAR * CursorName, SQLSMALLINT NameLength); SQLRETURN SQLSetDescField(SQLHDESC DescriptorHandle, SQLSMALLINT RecordNumber, SQLSMALLINT FieldIdentifier, SQLPOINTER Value, SQLINTEGER BufferLength); SQLRETURN SQLSetDescRec(SQLHDESC DescriptorHandle, SQLSMALLINT RecordNumber, SQLSMALLINT Type, SQLSMALLINT SubType, SQLINTEGER Length, SQLSMALLINT Precision, SQLSMALLINT Scale, SQLPOINTER Data, SQLINTEGER * StringLength, SQLSMALLINT * Indicator); SQLRETURN SQLSetEnvAttr(SQLHENV EnvironmentHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength); SQLRETURN SQLSetStmtAttr(SQLHSTMT StatementHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength); /* These are in SQL3 from August 1994 * but not in Date and Darwen, 1997 * - Thomas Lockhart 1999-06-17 SQLRETURN SQLLanguages(SQLHSTMT StatementHandle); SQLRETURN SQLReleaseEnv(SQLHENV EnvironmentHandle); SQLRETURN SQLScrollFetch(SQLHSTMT StatementHandle, SQLINTEGER FetchOrientation, SQLINTEGER FetchOffset); */