Remove outdated CLI things.
authorPeter Eisentraut <peter_e@gmx.net>
Tue, 2 Sep 2003 21:45:37 +0000 (21:45 +0000)
committerPeter Eisentraut <peter_e@gmx.net>
Tue, 2 Sep 2003 21:45:37 +0000 (21:45 +0000)
src/interfaces/cli/example1.c [deleted file]
src/interfaces/cli/example2.c [deleted file]
src/interfaces/cli/sqlcli.h [deleted file]

diff --git a/src/interfaces/cli/example1.c b/src/interfaces/cli/example1.c
deleted file mode 100644 (file)
index 75cedda..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-/* -*- C -*- */
-/* The first example illustrates creating a table, adding some data
- * to it, and selecting the inserted data. The second example shows
- * interactive ad hoc query processing.
- *
- * Actual applications include more complete error checking following
- * calls to SQL/CLI routines. That material is omitted from this
- * Appendix for the sake of clarity.
- *
- * This file is adapted for PostgreSQL
- * from the CLI Annex in the SQL98 August 1994 draft standard.
- * Thomas G. Lockhart 1999-06-16
- */
-
-/*
- * B.1 Create table, insert, select
- *
- * This example function creates a table, inserts data into the table,
- * and selects the inserted data.
- *
- * This example illustrates the execution of SQL statement text
- * both using the Prepare() and Execute()  method and using the
- * ExecDirect() method. The example also illustrates both the case
- * where the application uses the automatically-generated descriptors
- * and the case where the application allocates a descriptor of its
- * own and associates this descriptor with the SQL statement.
- *
- * Code comments include the equivalent statements in embedded SQL
- * to show how embedded SQL operations correspond to SQL/CLI function
- * calls.
- */
-
-#include "sqlcli.h"
-#include <string.h>
-
-#ifndef NULL
-#define NULL   0
-#endif
-
-int            print_err(SQLSMALLINT handletype, SQLINTEGER handle);
-
-int
-example1(SQLCHAR * server, SQLCHAR * uid, SQLCHAR * authen)
-{
-   SQLHENV     henv;
-   SQLHDBC     hdbc;
-   SQLHDESC    hdesc;
-   SQLHDESC    hdesc1;
-   SQLHDESC    hdesc2;
-   SQLHSTMT    hstmt;
-   SQLINTEGER  id;
-   SQLSMALLINT idind;
-   SQLCHAR     name[51];
-   SQLINTEGER  namelen;
-   SQLSMALLINT nameind;
-
-   /* EXEC SQL CONNECT TO :server USER :uid; */
-
-   /* allocate an environment handle */
-   SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
-   /* allocate a connection handle */
-   SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
-
-   /* connect to database */
-   if (SQLConnect(hdbc, server, SQL_NTS, uid, SQL_NTS,
-                  authen, SQL_NTS)
-       != SQL_SUCCESS)
-       return (print_err(SQL_HANDLE_DBC, hdbc));
-
-   /* allocate a statement handle */
-   SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);
-
-   /* EXEC SQL CREATE TABLE NAMEID (ID integer, NAME varchar(50));  */
-   {
-       SQLCHAR     create[] = "CREATE TABLE NAMEID (ID integer,"
-       " NAME varchar(50))";
-
-       /* execute the CREATE TABLE statement */
-       if (SQLExecDirect(hstmt, create, SQL_NTS) != SQL_SUCCESS)
-           return (print_err(SQL_HANDLE_STMT, hstmt));
-   }
-
-   /* EXEC SQL COMMIT WORK; */
-   /* commit CREATE TABLE */
-   SQLEndTran(SQL_HANDLE_ENV, henv, SQL_COMMIT);
-   /* EXEC SQL INSERT INTO NAMEID VALUES ( :id, :name ); */
-   {
-       SQLCHAR     insert[] = "INSERT INTO NAMEID VALUES (?, ?)";
-
-       /* show the use of SQLPrepare/SQLExecute method */
-       /* prepare the INSERT */
-       if (SQLPrepare(hstmt, insert, SQL_NTS) != SQL_SUCCESS)
-           return (print_err(SQL_HANDLE_STMT, hstmt));
-       /* application parameter descriptor */
-       SQLGetStmtAttr(hstmt, SQL_ATTR_APP_PARAM_
-                      DESC, &hdesc1, 0L,
-                      (SQLINTEGER *) NULL);
-       SQLSetDescRec(hdesc1, 1, SQL_INTEGER, 0, 0L, 0, 0,
-          (SQLPOINTER) & id, (SQLINTEGER *) NULL, (SQLSMALLINT *) NULL);
-       SQLSetDescRec(hdesc1, 2, SQL_CHAR, 0, 0L, 0, 0,
-                     (SQLPOINTER) name, (SQLINTEGER *) NULL,
-                     (SQLSMALLINT *) NULL);
-       /* implementation parameter descriptor */
-       SQLGetStmtAttr(hstmt, SQL_ATTR_IMP_PARAM_
-                      DESC, &hdesc2, 0L,
-                      (SQLINTEGER *) NULL);
-       SQLSetDescRec(hdesc2, 1, SQL_INTEGER, 0, 0L, 0, 0,
-                     (SQLPOINTER) NULL, (SQLINTEGER *) NULL,
-                     (SQLSMALLINT *) NULL);
-       SQLSetDescRec(hdesc2, 2, SQL_VARCHAR, 0, 50L, 0, 0,
-                     (SQLPOINTER) NULL, (SQLINTEGER *) NULL,
-                     (SQLSMALLINT *) NULL);
-
-       /* assign parameter values and execute the INSERT */
-       id = 500;
-       (void) strcpy(name, "Babbage");
-       if (SQLExecute(hstmt) != SQL_SUCCESS)
-           return (print_err(SQL_HANDLE_STMT, hstmt));
-   }
-   /* EXEC SQL COMMIT WORK; */
-   SQLEndTran(SQL_HANDLE_ENV, henv, SQL_COMMIT);
-   /* commit inserts */
-
-   /* EXEC SQL DECLARE c1 CURSOR FOR SELECT ID, NAME FROM NAMEID; */
-   /* EXEC SQL OPEN c1; */
-   /* The application doesn't specify "declare c1 cursor for" */
-   {
-       SQLCHAR     select[] = "select ID, NAME from NAMEID";
-
-       if (SQLExecDirect(hstmt, select, SQL_NTS) != SQL_SUCCESS)
-           return (print_err(SQL_HANDLE_STMT, hstmt));
-   }
-
-   /* EXEC SQL FETCH c1 INTO :id, :name; */
-   /* this time, explicitly allocate an application row descriptor */
-   SQLAllocHandle(SQL_HANDLE_DESC, hdbc, &hdesc);
-   SQLSetDescRec(hdesc, 1, SQL_INTEGER, 0, 0L, 0, 0,
-       (SQLPOINTER) & id, (SQLINTEGER *) NULL, (SQLSMALLINT *) & idind);
-
-   SQLSetDescRec(hdesc, 2, SQL_
-                 CHAR, 0, (SQLINTEGER) sizeof(name),
-                 0, 0, (SQLPOINTER) & name, (SQLINTEGER *) & namelen,
-                 (SQLSMALLINT *) & nameind);
-   /* associate descriptor with statement handle */
-   SQLSetStmtAttr(hstmt, SQL_ATTR_APP_ROW_DESC, &hdesc, 0);
-   /* execute the fetch */
-   SQLFetch(hstmt);
-
-   /* EXEC SQL COMMIT WORK; */
-   /* commit the transaction  */
-   SQLEndTran(SQL_HANDLE_ENV, henv, SQL_COMMIT);
-
-   /* EXEC SQL CLOSE c1; */
-   SQLClose(hstmt);
-   /* free the statement handle */
-   SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
-
-   /* EXEC SQL DISCONNECT; */
-   /* disconnect from the database */
-   SQLDisconnect(hdbc);
-   /* free descriptor handle */
-   SQLFreeHandle(SQL_HANDLE_DESC, hdesc);
-   /* free descriptor handle */
-   SQLFreeHandle(SQL_HANDLE_DESC, hdesc1);
-   /* free descriptor handle */
-   SQLFreeHandle(SQL_HANDLE_DESC, hdesc2);
-   /* free connection handle */
-   SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
-   /* free environment handle */
-   SQLFreeHandle(SQL_HANDLE_ENV, henv);
-
-   return (0);
-}
diff --git a/src/interfaces/cli/example2.c b/src/interfaces/cli/example2.c
deleted file mode 100644 (file)
index 9b02e4f..0000000
+++ /dev/null
@@ -1,270 +0,0 @@
-/* -*- C -*- */
-/* The first example illustrates creating a table, adding some data
- * to it, and selecting the inserted data. The second example shows
- * interactive ad hoc query processing.
- *
- * Actual applications include more complete error checking following
- * calls to SQL/CLI routines. That material is omitted from this
- * Appendix for the sake of clarity.
- *
- * This file is adapted for PostgreSQL
- * from the CLI Annex in the SQL98 August 1994 draft standard.
- * Thomas G. Lockhart 1999-06-16
- */
-
-/*
- * B.2 Interactive Query
- *
- * This sample function uses the concise CLI functions to
- * interactively execute a SQL statement supplied as an argument.
- * In the case where the user types a SELECT statement, the function
- * fetches and displays all rows of the result set.
- *
- * This example illustrates the use of GetDiagField() to identify
- * the type of SQL statement executed and, for SQL statements where
- * the row count is defined on all implementations, the use of
- * GetDiagField() to obtain the row count.
- */
-
-/*
- * Sample program - uses concise CLI functions to execute
- * interactively an ad hoc statement.
- */
-#include "sqlcli.h"
-#include <string.h>
-#include <stdlib.h>
-
-#define  MAXCOLS   100
-
-#define  max(a,b) (a>b?a:b)
-
-int            print_err(SQLSMALLINT handletype, SQLINTEGER handle);
-int build_indicator_message(SQLCHAR * errmsg,
-                       SQLPOINTER * data,
-                       SQLINTEGER collen,
-                       SQLINTEGER * outlen,
-                       SQLSMALLINT colnum);
-
-SQLINTEGER display_length(SQLSMALLINT coltype,
-              SQLINTEGER collen,
-              SQLCHAR * colname);
-
-example2(SQLCHAR * server, SQLCHAR * uid, SQLCHAR * authen, SQLCHAR * sqlstr)
-{
-   int         i;
-   SQLHENV     henv;
-   SQLHDBC     hdbc;
-   SQLHSTMT    hstmt;
-   SQLCHAR     errmsg[256];
-   SQLCHAR     colname[64];
-   SQLSMALLINT coltype;
-   SQLSMALLINT colnamelen;
-   SQLSMALLINT nullable;
-   SQLINTEGER  collen[MAXCOLS];
-   SQLSMALLINT scale;
-   SQLINTEGER  outlen[MAXCOLS];
-   SQLCHAR    *data[MAXCOLS];
-   SQLSMALLINT nresultcols;
-   SQLINTEGER  rowcount;
-   SQLINTEGER  stmttype;
-   SQLRETURN   rc;
-
-   /* allocate an environment handle */
-   SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
-
-   /* allocate a connection handle */
-   SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
-
-   /* connect to database */
-   if (SQLConnect(hdbc, server, SQL_NTS, uid, SQL_NTS, authen, SQL_NTS)
-       != SQL_SUCCESS)
-       return (print_err(SQL_HANDLE_DBC, hdbc));
-
-   /* allocate a statement handle */
-   SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);
-
-   /* execute the SQL statement */
-   if (SQLExecDirect(hstmt, sqlstr, SQL_NTS) != SQL_SUCCESS)
-       return (print_err(SQL_HANDLE_STMT, hstmt));
-
-   /* see what kind of statement it was */
-   SQLGetDiagField(SQL_HANDLE_STMT, hstmt, 0,
-                   SQL_DIAG_DYNAMIC_FUNCTION_CODE,
-                   (SQLPOINTER) & stmttype, 0, (SQLSMALLINT *) NULL);
-
-   switch (stmttype)
-   {
-           /* SELECT statement */
-       case SQL_SELECT_CURSOR:
-           /* determine number of result columns */
-           SQLNumResultCols(hstmt, &nresultcols);
-           /* display column names */
-           for (i = 0; i < nresultcols; i++)
-           {
-               SQLDescribeCol(hstmt, i + 1, colname, sizeof(colname),
-                  &colnamelen, &coltype, &collen[i], &scale, &nullable);
-
-               /*
-                * assume there is a display_length function which
-                * computes correct length given the data type
-                */
-               collen[i] = display_length(coltype, collen[i], colname);
-               (void) printf("%*.*s", collen[i], collen[i], colname);
-               /* allocate memory to bind column */
-               data[i] = (SQLCHAR *) malloc(collen[i]);
-
-               /*
-                * bind columns to program vars, converting all types to
-                * CHAR
-                */
-               SQLBindCol(hstmt, i + 1, SQL_CHAR, data[i], collen[i],
-                          &outlen[i]);
-           }
-           /* display result rows */
-           while ((rc = SQLFetch(hstmt)) != SQL_ERROR)
-           {
-               errmsg[0] = '\0';
-               if (rc == SQL_SUCCESS_WITH_INFO)
-               {
-                   for (i = 0; i < nresultcols; i++)
-                   {
-                       if (outlen[i] == SQL_NULL_DATA || outlen[i] >= collen[i])
-                           build_indicator_message(errmsg,
-                                    (SQLPOINTER *) & data[i], collen[i],
-                                                   &outlen[i], i);
-                       (void) printf("%*.*s ", outlen[i], outlen[i],
-                                     data[i]);
-                   }           /* for all columns in this row  */
-                   /* print any truncation messages */
-                   (void) printf("\n%s", errmsg);
-               }
-           }                   /* while rows to fetch */
-           SQLClose(hstmt);
-           break;
-
-           /* searched DELETE, INSERT or searched UPDATE statement */
-       case SQL_DELETE_WHERE:
-       case SQL_INSERT:
-       case SQL_UPDATE_WHERE:
-           /* check rowcount */
-           SQLGetDiagField(SQL_HANDLE_STMT, hstmt, 0,
-                         SQL_DIAG_ROW_COUNT, (SQLPOINTER) & rowcount, 0,
-                           (SQLSMALLINT *) NULL);
-           if (SQLEndTran(SQL_HANDLE_ENV, henv, SQL_COMMIT)
-               == SQL_SUCCESS)
-               (void) printf("Operation successful\n");
-           else
-               (void) printf("Operation failed\n");
-           (void) printf("%ld rows affected\n", rowcount);
-           break;
-
-           /* other statements */
-       case SQL_ALTER_TABLE:
-       case SQL_CREATE_TABLE:
-       case SQL_CREATE_VIEW:
-       case SQL_DROP_TABLE:
-       case SQL_DROP_VIEW:
-       case SQL_DYNAMIC_DELETE_CURSOR:
-       case SQL_DYNAMIC_UPDATE_CURSOR:
-       case SQL_GRANT:
-       case SQL_REVOKE:
-           if (SQLEndTran(SQL_HANDLE_ENV, henv, SQL_COMMIT)
-               == SQL_SUCCESS)
-               (void) printf("Operation successful\n");
-           else
-               (void) printf("Operation failed\n");
-           break;
-
-           /* implementation-defined statement */
-       default:
-           (void) printf("Statement type=%ld\n", stmttype);
-           break;
-   }
-
-   /* free data buffers */
-   for (i = 0; i < nresultcols; i++)
-       (void) free(data[i]);
-
-   /* free statement handle */
-   SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
-   /* disconnect from database */
-   SQLDisconnect(hdbc);
-   /* free connection handle */
-   SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
-   /* free environment handle */
-   SQLFreeHandle(SQL_HANDLE_ENV, henv);
-
-   return (0);
-}
-
-/***********************************************************
- The following functions are given for completeness, but are
- not relevant for understanding the database processing
- nature of CLI
-***********************************************************/
-
-#define MAX_NUM_PRECISION 15
-/*#define max length of char string representation of no. as:
-
-  = max(precision) + leading sign + E + exp sign + max exp length
-  =  15               + 1            + 1 + 1        + 2
-  =  15 + 5
-*/
-#define MAX_NUM_STRING_SIZE (MAX_NUM_PRECISION + 5)
-
-SQLINTEGER
-display_length(SQLSMALLINT coltype, SQLINTEGER collen,
-              SQLCHAR * colname)
-{
-   switch (coltype)
-   {
-
-       case SQL_VARCHAR:
-       case SQL_CHAR:
-           return (max(collen, strlen((char *) colname)));
-           break;
-
-       case SQL_FLOAT:
-       case SQL_DOUBLE:
-       case SQL_NUMERIC:
-       case SQL_REAL:
-       case SQL_DECIMAL:
-           return (max(MAX_NUM_STRING_SIZE, strlen((char *) colname)));
-           break;
-
-       case SQL_DATETIME:
-           return (max(SQL_TIMESTAMP_LEN, strlen((char *) colname)));
-           break;
-
-       case SQL_INTEGER:
-           return (max(10, strlen((char *) colname)));
-           break;
-
-       case SQL_SMALLINT:
-           return (max(5, strlen((char *) colname)));
-           break;
-
-       default:
-           (void) printf("Unknown datatype, %d\n", coltype);
-           return (0);
-           break;
-   }
-}
-
-int
-build_indicator_message(SQLCHAR * errmsg, SQLPOINTER * data,
-             SQLINTEGER collen, SQLINTEGER * outlen, SQLSMALLINT colnum)
-{
-   if (*outlen == SQL_NULL_DATA)
-   {
-       (void) strcpy((char *) data, "NULL");
-       *outlen = 4;
-   }
-   else
-   {
-       sprintf((char *) errmsg + strlen((char *) errmsg),
-               "%d chars truncated, col %d\n", *outlen - collen + 1,
-               colnum);
-       *outlen = 255;
-   }
-}
diff --git a/src/interfaces/cli/sqlcli.h b/src/interfaces/cli/sqlcli.h
deleted file mode 100644 (file)
index a914549..0000000
+++ /dev/null
@@ -1,719 +0,0 @@
-/* -*- 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);
-*/