]> git.saurik.com Git - wxWidgets.git/blobdiff - src/iodbc/result.c
added an error message if a bitmap can't be addedto the image list
[wxWidgets.git] / src / iodbc / result.c
index 1060d40d83594498710026cb2dfa9efa8cb35175..c00474b04f054d58c489794b91c145c9fd1092a8 100644 (file)
@@ -1,6 +1,6 @@
 /** Prepare for getting query result
-      
-    Copyright (C) 1995 by Ke Jin <kejin@empress.com> 
+
+    Copyright (C) 1995 by Ke Jin <kejin@empress.com>
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
 
 #include       <../iodbc/itrace.h>
 
-RETCODE SQL_API        SQLBindCol ( 
-                       HSTMT           hstmt,
-                       UWORD           icol,
-                       SWORD           fCType,
-                       PTR             rgbValue,
-                       SDWORD          cbValueMax,
-                       SDWORD FAR*     pcbValue )
+RETCODE SQL_API SQLBindCol (
+                        HSTMT           hstmt,
+                        UWORD           icol,
+                        SWORD           fCType,
+                        PTR             rgbValue,
+                        SDWORD          cbValueMax,
+                        SDWORD FAR*     pcbValue )
 {
-       STMT_t FAR*     pstmt   = (STMT_t FAR*)hstmt;
-       HPROC           hproc   = SQL_NULL_HPROC;
-       RETCODE         retcode;
-
-       if( hstmt == SQL_NULL_HSTMT 
-        || pstmt->hdbc == SQL_NULL_HDBC )
-       {
-               return SQL_INVALID_HANDLE;
-       }
-
-       /* check argument */
-       switch(fCType)
-       {
-               case SQL_C_DEFAULT:
-               case SQL_C_CHAR:
-               case SQL_C_BINARY:
-               case SQL_C_BIT:
-               case SQL_C_TINYINT:
-               case SQL_C_STINYINT:
-               case SQL_C_UTINYINT:
-               case SQL_C_SHORT:
-               case SQL_C_SSHORT:
-               case SQL_C_USHORT:
-               case SQL_C_LONG:
-               case SQL_C_SLONG:
-               case SQL_C_ULONG:
-               case SQL_C_FLOAT:
-               case SQL_C_DOUBLE:
-               case SQL_C_DATE:
-               case SQL_C_TIME:
-               case SQL_C_TIMESTAMP:
-                       break;
-
-               default:
-                       PUSHSQLERR ( pstmt->herr, en_S1003);
-                       return SQL_ERROR;
-       }
-
-       if( cbValueMax < 0 )
-       {
-               PUSHSQLERR ( pstmt->herr, en_S1090 );
-               
-               return SQL_ERROR;
-       }
-
-       /* check state */
-       if( pstmt->state > en_stmt_needdata 
-        || pstmt->asyn_on != en_NullProc )
-       {
-               PUSHSQLERR ( pstmt->herr, en_S1010 );
-               return SQL_ERROR;
-       }
-
-       /* call driver's function */
-       hproc = _iodbcdm_getproc( pstmt->hdbc, en_BindCol );
-
-       if( hproc == SQL_NULL_HPROC )
-       {
-               PUSHSQLERR ( pstmt->herr, en_IM001 );
-               
-               return SQL_ERROR;
-       }
-
-       CALL_DRIVER ( pstmt->hdbc, retcode, hproc, en_BindCol, (
-                       pstmt->dhstmt, 
-                       icol, 
-                       fCType, 
-                       rgbValue, 
-                       cbValueMax,
-                       pcbValue ) )
+        STMT_t FAR*     pstmt   = (STMT_t FAR*)hstmt;
+        HPROC           hproc   = SQL_NULL_HPROC;
+        RETCODE         retcode;
+
+        if( hstmt == SQL_NULL_HSTMT
+         || pstmt->hdbc == SQL_NULL_HDBC )
+        {
+                return SQL_INVALID_HANDLE;
+        }
+
+        /* check argument */
+        switch(fCType)
+        {
+                case SQL_C_DEFAULT:
+                case SQL_C_CHAR:
+                case SQL_C_BINARY:
+                case SQL_C_BIT:
+                case SQL_C_TINYINT:
+                case SQL_C_STINYINT:
+                case SQL_C_UTINYINT:
+                case SQL_C_SHORT:
+                case SQL_C_SSHORT:
+                case SQL_C_USHORT:
+                case SQL_C_LONG:
+                case SQL_C_SLONG:
+                case SQL_C_ULONG:
+                case SQL_C_FLOAT:
+                case SQL_C_DOUBLE:
+                case SQL_C_DATE:
+                case SQL_C_TIME:
+                case SQL_C_TIMESTAMP:
+                        break;
+
+                default:
+                        PUSHSQLERR ( pstmt->herr, en_S1003);
+                        return SQL_ERROR;
+        }
+
+        if( cbValueMax < 0 )
+        {
+                PUSHSQLERR ( pstmt->herr, en_S1090 );
+
+                return SQL_ERROR;
+        }
+
+        /* check state */
+        if( pstmt->state > en_stmt_needdata
+         || pstmt->asyn_on != en_NullProc )
+        {
+                PUSHSQLERR ( pstmt->herr, en_S1010 );
+                return SQL_ERROR;
+        }
+
+        /* call driver's function */
+        hproc = _iodbcdm_getproc( pstmt->hdbc, en_BindCol );
+
+        if( hproc == SQL_NULL_HPROC )
+        {
+                PUSHSQLERR ( pstmt->herr, en_IM001 );
+
+                return SQL_ERROR;
+        }
+
+        CALL_DRIVER ( pstmt->hdbc, retcode, hproc, en_BindCol, (
+                        pstmt->dhstmt,
+                        icol,
+                        fCType,
+                        rgbValue,
+                        cbValueMax,
+                        pcbValue ) )
 
 #if 0
-       retcode = hproc(pstmt->dhstmt, 
-                       icol, 
-                       fCType, 
-                       rgbValue, 
-                       cbValueMax,
-                       pcbValue );
+        retcode = hproc(pstmt->dhstmt,
+                        icol,
+                        fCType,
+                        rgbValue,
+                        cbValueMax,
+                        pcbValue );
 #endif
 
-       return retcode;
+        return retcode;
 }
 
-RETCODE SQL_API        SQLGetCursorName(
-                       HSTMT           hstmt,
-                       UCHAR FAR*      szCursor,
-                       SWORD           cbCursorMax,
-                       SWORD FAR*      pcbCursor )
+RETCODE SQL_API SQLGetCursorName(
+                        HSTMT           hstmt,
+                        UCHAR FAR*      szCursor,
+                        SWORD           cbCursorMax,
+                        SWORD FAR*      pcbCursor )
 {
-       STMT_t FAR*     pstmt   = (STMT_t FAR*)hstmt;
-       HPROC           hproc;
-       RETCODE         retcode;
-
-       if( hstmt == SQL_NULL_HSTMT
-        || pstmt->hdbc == SQL_NULL_HDBC )
-       {
-               return SQL_INVALID_HANDLE;
-       }
-
-       /* check argument */
-       if( cbCursorMax < (SWORD)0 )
-       {
-               PUSHSQLERR ( pstmt->herr, en_S1090 );
-       
-               return SQL_ERROR;
-       }
-
-       /* check state */
-       if( pstmt->state >= en_stmt_needdata
-        || pstmt->asyn_on != en_NullProc )
-       {
-               PUSHSQLERR ( pstmt->herr, en_S1010 );
-
-               return SQL_ERROR;
-       }
-
-       if( pstmt->state < en_stmt_cursoropen
-        && pstmt->cursor_state == en_stmt_cursor_no )
-       {
-               PUSHSQLERR ( pstmt->herr, en_S1015 );
-
-               return SQL_ERROR;
-       }
-
-       /* call driver's function */
-       hproc = _iodbcdm_getproc ( pstmt->hdbc, en_GetCursorName );
-
-       if( hproc == SQL_NULL_HPROC )
-       {
-               PUSHSQLERR ( pstmt->herr, en_IM001 );
-
-               return SQL_ERROR;
-       }
-
-       CALL_DRIVER ( pstmt->hdbc, retcode, hproc, en_GetCursorName, (
-                       pstmt->dhstmt,
-                       szCursor,
-                       cbCursorMax,
-                       pcbCursor ) )
+        STMT_t FAR*     pstmt   = (STMT_t FAR*)hstmt;
+        HPROC           hproc;
+        RETCODE         retcode;
+
+        if( hstmt == SQL_NULL_HSTMT
+         || pstmt->hdbc == SQL_NULL_HDBC )
+        {
+                return SQL_INVALID_HANDLE;
+        }
+
+        /* check argument */
+        if( cbCursorMax < (SWORD)0 )
+        {
+                PUSHSQLERR ( pstmt->herr, en_S1090 );
+
+                return SQL_ERROR;
+        }
+
+        /* check state */
+        if( pstmt->state >= en_stmt_needdata
+         || pstmt->asyn_on != en_NullProc )
+        {
+                PUSHSQLERR ( pstmt->herr, en_S1010 );
+
+                return SQL_ERROR;
+        }
+
+        if( pstmt->state < en_stmt_cursoropen
+         && pstmt->cursor_state == en_stmt_cursor_no )
+        {
+                PUSHSQLERR ( pstmt->herr, en_S1015 );
+
+                return SQL_ERROR;
+        }
+
+        /* call driver's function */
+        hproc = _iodbcdm_getproc ( pstmt->hdbc, en_GetCursorName );
+
+        if( hproc == SQL_NULL_HPROC )
+        {
+                PUSHSQLERR ( pstmt->herr, en_IM001 );
+
+                return SQL_ERROR;
+        }
+
+        CALL_DRIVER ( pstmt->hdbc, retcode, hproc, en_GetCursorName, (
+                        pstmt->dhstmt,
+                        szCursor,
+                        cbCursorMax,
+                        pcbCursor ) )
 
 #if 0
-       retcode = hproc(pstmt->dhstmt,
-                       szCursor,
-                       cbCursorMax,
-                       pcbCursor );
+        retcode = hproc(pstmt->dhstmt,
+                        szCursor,
+                        cbCursorMax,
+                        pcbCursor );
 #endif
 
-       return retcode;
+        return retcode;
 }
 
-RETCODE SQL_API        SQLRowCount( 
-                       HSTMT           hstmt,
-                       SDWORD FAR*     pcrow ) 
+RETCODE SQL_API SQLRowCount(
+                        HSTMT           hstmt,
+                        SDWORD FAR*     pcrow )
 {
-       STMT_t FAR*     pstmt   = (STMT_t FAR*)hstmt;
-       HPROC           hproc;
-       RETCODE         retcode;
+        STMT_t FAR*     pstmt   = (STMT_t FAR*)hstmt;
+        HPROC           hproc;
+        RETCODE         retcode;
 
-       if( hstmt == SQL_NULL_HSTMT 
-        || pstmt->hdbc == SQL_NULL_HDBC )
-       {
-               return SQL_INVALID_HANDLE;
-       }
+        if( hstmt == SQL_NULL_HSTMT
+         || pstmt->hdbc == SQL_NULL_HDBC )
+        {
+                return SQL_INVALID_HANDLE;
+        }
 
-       /* check state */
-       if( pstmt->state >= en_stmt_needdata
-        || pstmt->state <= en_stmt_prepared
-        || pstmt->asyn_on != en_NullProc )
-       {
-               PUSHSQLERR ( pstmt->herr, en_S1010 );
+        /* check state */
+        if( pstmt->state >= en_stmt_needdata
+         || pstmt->state <= en_stmt_prepared
+         || pstmt->asyn_on != en_NullProc )
+        {
+                PUSHSQLERR ( pstmt->herr, en_S1010 );
 
-               return SQL_ERROR;
-       }
+                return SQL_ERROR;
+        }
 
-       /* call driver */
-       hproc = _iodbcdm_getproc( pstmt->hdbc, en_RowCount );
+        /* call driver */
+        hproc = _iodbcdm_getproc( pstmt->hdbc, en_RowCount );
 
-       if( hproc == SQL_NULL_HPROC )
-       {
-               PUSHSQLERR ( pstmt->herr, en_IM001 );
+        if( hproc == SQL_NULL_HPROC )
+        {
+                PUSHSQLERR ( pstmt->herr, en_IM001 );
 
-               return SQL_ERROR;
-       }
+                return SQL_ERROR;
+        }
 
-       CALL_DRIVER ( pstmt->hdbc, retcode, hproc, en_RowCount, (
-                       pstmt->dhstmt, pcrow) )
+        CALL_DRIVER ( pstmt->hdbc, retcode, hproc, en_RowCount, (
+                        pstmt->dhstmt, pcrow) )
 
 #if 0
-       retcode = hproc ( pstmt->dhstmt, pcrow );
+        retcode = hproc ( pstmt->dhstmt, pcrow );
 #endif
 
-       return retcode;
+        return retcode;
 }
 
-RETCODE        SQL_API SQLNumResultCols(
-                       HSTMT           hstmt,
-                       SWORD FAR*      pccol )
+RETCODE SQL_API SQLNumResultCols(
+                        HSTMT           hstmt,
+                        SWORD FAR*      pccol )
 {
-       STMT_t FAR*     pstmt   = (STMT_t FAR*)hstmt;
-       HPROC           hproc;
-       RETCODE         retcode;
-       SWORD           ccol;
-
-       if( hstmt == SQL_NULL_HSTMT
-        || pstmt->hdbc == SQL_NULL_HDBC )
-       {
-               return SQL_INVALID_HANDLE;
-       }
-
-       /* check state */
-       if( pstmt->asyn_on == en_NullProc )
-       {
-               if( pstmt->state == en_stmt_allocated
-                || pstmt->state >= en_stmt_needdata )
-               {
-                       PUSHSQLERR ( pstmt->herr, en_S1010 );
-                       return SQL_ERROR;
-               }
-       }
-       else if( pstmt->asyn_on != en_NumResultCols )
-       {
-               PUSHSQLERR ( pstmt->herr, en_S1010 );
-
-               return SQL_ERROR;
-       }
-
-       /* call driver */
-       hproc = _iodbcdm_getproc( pstmt->hdbc, en_NumResultCols );
-
-       if( hproc == SQL_NULL_HPROC )
-       {
-               PUSHSQLERR ( pstmt->herr, en_IM001 );
-
-               return SQL_ERROR;
-       }
-
-       CALL_DRIVER ( pstmt->hdbc,  retcode, hproc, en_NumResultCols, (
-                       pstmt->dhstmt, &ccol) )
+        STMT_t FAR*     pstmt   = (STMT_t FAR*)hstmt;
+        HPROC           hproc;
+        RETCODE         retcode;
+        SWORD           ccol;
+
+        if( hstmt == SQL_NULL_HSTMT
+         || pstmt->hdbc == SQL_NULL_HDBC )
+        {
+                return SQL_INVALID_HANDLE;
+        }
+
+        /* check state */
+        if( pstmt->asyn_on == en_NullProc )
+        {
+                if( pstmt->state == en_stmt_allocated
+                 || pstmt->state >= en_stmt_needdata )
+                {
+                        PUSHSQLERR ( pstmt->herr, en_S1010 );
+                        return SQL_ERROR;
+                }
+        }
+        else if( pstmt->asyn_on != en_NumResultCols )
+        {
+                PUSHSQLERR ( pstmt->herr, en_S1010 );
+
+                return SQL_ERROR;
+        }
+
+        /* call driver */
+        hproc = _iodbcdm_getproc( pstmt->hdbc, en_NumResultCols );
+
+        if( hproc == SQL_NULL_HPROC )
+        {
+                PUSHSQLERR ( pstmt->herr, en_IM001 );
+
+                return SQL_ERROR;
+        }
+
+        CALL_DRIVER ( pstmt->hdbc,  retcode, hproc, en_NumResultCols, (
+                        pstmt->dhstmt, &ccol) )
 
 #if 0
-       retcode = hproc( pstmt->dhstmt, &ccol );
+        retcode = hproc( pstmt->dhstmt, &ccol );
 #endif
 
-       /* state transition */
-       if( pstmt->asyn_on == en_NumResultCols )
-       {
-               switch( retcode )
-               {
-                       case SQL_SUCCESS:
-                       case SQL_SUCCESS_WITH_INFO:
-                       case SQL_ERROR:
-                               pstmt->asyn_on = en_NullProc;
-
-                       case SQL_STILL_EXECUTING:
-                       default:
-                               break;
-               }
-       }
-
-       switch( retcode )
-       {
-               case SQL_SUCCESS:
-               case SQL_SUCCESS_WITH_INFO:
-                       break;
-
-               case SQL_STILL_EXECUTING:
-                       ccol = 0;
-                       pstmt->asyn_on = en_NumResultCols;
-                       break;
-
-               default:
-                       ccol = 0;
-                       break;
-       }
-
-       if( pccol )
-       {
-               *pccol = ccol;
-       }
-
-       return retcode;
+        /* state transition */
+        if( pstmt->asyn_on == en_NumResultCols )
+        {
+                switch( retcode )
+                {
+                        case SQL_SUCCESS:
+                        case SQL_SUCCESS_WITH_INFO:
+                        case SQL_ERROR:
+                                pstmt->asyn_on = en_NullProc;
+
+                        case SQL_STILL_EXECUTING:
+                        default:
+                                break;
+                }
+        }
+
+        switch( retcode )
+        {
+                case SQL_SUCCESS:
+                case SQL_SUCCESS_WITH_INFO:
+                        break;
+
+                case SQL_STILL_EXECUTING:
+                        ccol = 0;
+                        pstmt->asyn_on = en_NumResultCols;
+                        break;
+
+                default:
+                        ccol = 0;
+                        break;
+        }
+
+        if( pccol )
+        {
+                *pccol = ccol;
+        }
+
+        return retcode;
 }
 
-RETCODE SQL_API        SQLDescribeCol( 
-                       HSTMT           hstmt,
-                       UWORD           icol,
-                       UCHAR  FAR*     szColName,
-                       SWORD           cbColNameMax,
-                       SWORD  FAR*     pcbColName,
-                       SWORD  FAR*     pfSqlType,
-                       UDWORD FAR*     pcbColDef,
-                       SWORD  FAR*     pibScale,
-                       SWORD  FAR*     pfNullable )
+RETCODE SQL_API SQLDescribeCol(
+                        HSTMT           hstmt,
+                        UWORD           icol,
+                        UCHAR  FAR*     szColName,
+                        SWORD           cbColNameMax,
+                        SWORD  FAR*     pcbColName,
+                        SWORD  FAR*     pfSqlType,
+                        UDWORD FAR*     pcbColDef,
+                        SWORD  FAR*     pibScale,
+                        SWORD  FAR*     pfNullable )
 {
-       STMT_t FAR*     pstmt   = (STMT_t FAR*)hstmt;
-       HPROC           hproc;
-       RETCODE         retcode;
-       int             sqlstat = en_00000;
-
-       if( hstmt == SQL_NULL_HSTMT
-        || pstmt->hdbc == SQL_NULL_HDBC )
-       {
-               return SQL_INVALID_HANDLE;
-       }
-
-       /* check arguments */
-       if( icol == 0 )
-       {
-               sqlstat = en_S1002;
-       }
-       else if( cbColNameMax < 0 )
-       {
-               sqlstat = en_S1090;
-       }
-
-       if( sqlstat != en_00000 )
-       {
-               PUSHSQLERR ( pstmt->herr, sqlstat );
-
-               return SQL_ERROR;
-       }
-
-       /* check state */
-       if( pstmt->asyn_on == en_NullProc )
-       {
-               if( pstmt->asyn_on == en_stmt_allocated 
-                || pstmt->asyn_on >= en_stmt_needdata )
-               {
-                       sqlstat = en_S1010;
-               }
-       }
-       else if( pstmt->asyn_on != en_DescribeCol )
-       {
-               sqlstat = en_S1010;
-       }
-
-       if( sqlstat != en_00000 )
-       {
-               PUSHSQLERR ( pstmt->herr, sqlstat );
-
-               return SQL_ERROR;
-       }
-
-       /* call driver */
-       hproc = _iodbcdm_getproc( pstmt->hdbc, en_DescribeCol );
-
-       if( hproc == SQL_NULL_HPROC )
-       {
-               PUSHSQLERR ( pstmt->herr, en_IM001 );
-
-               return SQL_ERROR;
-       }
-
-       CALL_DRIVER ( pstmt->hdbc, retcode, hproc, en_DescribeCol, (
-                       pstmt->dhstmt,
-                       icol,
-                       szColName,
-                       cbColNameMax,
-                       pcbColName,
-                       pfSqlType,
-                       pcbColDef,
-                       pibScale,
-                       pfNullable) )
+        STMT_t FAR*     pstmt   = (STMT_t FAR*)hstmt;
+        HPROC           hproc;
+        RETCODE         retcode;
+        int             sqlstat = en_00000;
+
+        if( hstmt == SQL_NULL_HSTMT
+         || pstmt->hdbc == SQL_NULL_HDBC )
+        {
+                return SQL_INVALID_HANDLE;
+        }
+
+        /* check arguments */
+        if( icol == 0 )
+        {
+                sqlstat = en_S1002;
+        }
+        else if( cbColNameMax < 0 )
+        {
+                sqlstat = en_S1090;
+        }
+
+        if( sqlstat != en_00000 )
+        {
+                PUSHSQLERR ( pstmt->herr, sqlstat );
+
+                return SQL_ERROR;
+        }
+
+        /* check state */
+        if( pstmt->asyn_on == en_NullProc )
+        {
+                if( pstmt->asyn_on == en_stmt_allocated
+                 || pstmt->asyn_on >= en_stmt_needdata )
+                {
+                        sqlstat = en_S1010;
+                }
+        }
+        else if( pstmt->asyn_on != en_DescribeCol )
+        {
+                sqlstat = en_S1010;
+        }
+
+        if( sqlstat != en_00000 )
+        {
+                PUSHSQLERR ( pstmt->herr, sqlstat );
+
+                return SQL_ERROR;
+        }
+
+        /* call driver */
+        hproc = _iodbcdm_getproc( pstmt->hdbc, en_DescribeCol );
+
+        if( hproc == SQL_NULL_HPROC )
+        {
+                PUSHSQLERR ( pstmt->herr, en_IM001 );
+
+                return SQL_ERROR;
+        }
+
+        CALL_DRIVER ( pstmt->hdbc, retcode, hproc, en_DescribeCol, (
+                        pstmt->dhstmt,
+                        icol,
+                        szColName,
+                        cbColNameMax,
+                        pcbColName,
+                        pfSqlType,
+                        pcbColDef,
+                        pibScale,
+                        pfNullable) )
 
 #if 0
-       retcode = hproc(pstmt->dhstmt,
-                       icol,
-                       szColName,
-                       cbColNameMax,
-                       pcbColName,
-                       pfSqlType,
-                       pcbColDef,
-                       pibScale,
-                       pfNullable );
+        retcode = hproc(pstmt->dhstmt,
+                        icol,
+                        szColName,
+                        cbColNameMax,
+                        pcbColName,
+                        pfSqlType,
+                        pcbColDef,
+                        pibScale,
+                        pfNullable );
 #endif
 
-       /* state transition */
-       if( pstmt->asyn_on == en_DescribeCol )
-       {
-               switch( retcode )
-               {
-                       case SQL_SUCCESS:
-                       case SQL_SUCCESS_WITH_INFO:
-                       case SQL_ERROR:
-                               pstmt->asyn_on = en_NullProc;
-                               break;
-
-                       default:
-                               return retcode;
-               }
-       }
-
-       switch( pstmt->state )
-       {
-               case en_stmt_prepared:
-               case en_stmt_cursoropen:
-               case en_stmt_fetched:
-               case en_stmt_xfetched:
-                       if( retcode == SQL_STILL_EXECUTING )
-                       {
-                               pstmt->asyn_on = en_DescribeCol;
-                       }
-                       break;
-
-               default:
-                       break;
-       }
-
-       return retcode;
+        /* state transition */
+        if( pstmt->asyn_on == en_DescribeCol )
+        {
+                switch( retcode )
+                {
+                        case SQL_SUCCESS:
+                        case SQL_SUCCESS_WITH_INFO:
+                        case SQL_ERROR:
+                                pstmt->asyn_on = en_NullProc;
+                                break;
+
+                        default:
+                                return retcode;
+                }
+        }
+
+        switch( pstmt->state )
+        {
+                case en_stmt_prepared:
+                case en_stmt_cursoropen:
+                case en_stmt_fetched:
+                case en_stmt_xfetched:
+                        if( retcode == SQL_STILL_EXECUTING )
+                        {
+                                pstmt->asyn_on = en_DescribeCol;
+                        }
+                        break;
+
+                default:
+                        break;
+        }
+
+        return retcode;
 }
 
-RETCODE SQL_API        SQLColAttributes( 
-                       HSTMT           hstmt,
-                       UWORD           icol,
-                       UWORD           fDescType,
-                       PTR             rgbDesc,
-                       SWORD           cbDescMax,
-                       SWORD  FAR*     pcbDesc,
-                       SDWORD FAR*     pfDesc )
+RETCODE SQL_API SQLColAttributes(
+                        HSTMT           hstmt,
+                        UWORD           icol,
+                        UWORD           fDescType,
+                        PTR             rgbDesc,
+                        SWORD           cbDescMax,
+                        SWORD  FAR*     pcbDesc,
+                        SDWORD FAR*     pfDesc )
 {
-       STMT_t FAR*     pstmt   = (STMT_t FAR*)hstmt;
-       HPROC           hproc;
-       RETCODE         retcode;
-       int             sqlstat = en_00000;
-
-       if( hstmt == SQL_NULL_HSTMT
-        || pstmt->hdbc == SQL_NULL_HDBC )
-       {
-               return SQL_INVALID_HANDLE;
-       }
-
-       /* check arguments */
-       if( icol == 0 && fDescType != SQL_COLUMN_COUNT )
-       {
-               sqlstat = en_S1002;
-       }
-       else if( cbDescMax < 0 )
-       {
-               sqlstat = en_S1090;
-       }
-       else if(/* fDescType < SQL_COLATT_OPT_MIN || */ /* turnoff warning */
-                ( fDescType > SQL_COLATT_OPT_MAX 
-               && fDescType < SQL_COLUMN_DRIVER_START ) )
-       {
-               sqlstat = en_S1091;
-       }
-
-       if( sqlstat != en_00000 )
-       {
-               PUSHSQLERR ( pstmt->herr, sqlstat );
-
-               return SQL_ERROR;
-       }
-
-       /* check state */
-       if( pstmt->asyn_on == en_NullProc )
-       {
-               if( pstmt->asyn_on == en_stmt_allocated 
-                || pstmt->asyn_on >= en_stmt_needdata )
-               {
-                       sqlstat = en_S1010;
-               }
-       }
-       else if( pstmt->asyn_on != en_ColAttributes )
-       {
-               sqlstat = en_S1010;
-       }
-
-       if( sqlstat != en_00000 )
-       {
-               PUSHSQLERR ( pstmt->herr, sqlstat );
-
-               return SQL_ERROR;
-       }
-
-       /* call driver */
-       hproc = _iodbcdm_getproc( pstmt->hdbc, en_ColAttributes );
-
-       if( hproc == SQL_NULL_HPROC )
-       {
-               PUSHSQLERR ( pstmt->herr, en_IM001 );
-
-               return SQL_ERROR;
-       }
-
-       CALL_DRIVER ( pstmt->hdbc,  retcode, hproc, en_ColAttributes, (
-                       pstmt->dhstmt,
-                       icol,
-                       fDescType,
-                       rgbDesc,
-                       cbDescMax,
-                       pcbDesc,
-                       pfDesc) )
+        STMT_t FAR*     pstmt   = (STMT_t FAR*)hstmt;
+        HPROC           hproc;
+        RETCODE         retcode;
+        int             sqlstat = en_00000;
+
+        if( hstmt == SQL_NULL_HSTMT
+         || pstmt->hdbc == SQL_NULL_HDBC )
+        {
+                return SQL_INVALID_HANDLE;
+        }
+
+        /* check arguments */
+        if( icol == 0 && fDescType != SQL_COLUMN_COUNT )
+        {
+                sqlstat = en_S1002;
+        }
+        else if( cbDescMax < 0 )
+        {
+                sqlstat = en_S1090;
+        }
+        else if(/* fDescType < SQL_COLATT_OPT_MIN || */ /* turnoff warning */
+                 ( fDescType > SQL_COLATT_OPT_MAX
+                && fDescType < SQL_COLUMN_DRIVER_START ) )
+        {
+                sqlstat = en_S1091;
+        }
+
+        if( sqlstat != en_00000 )
+        {
+                PUSHSQLERR ( pstmt->herr, sqlstat );
+
+                return SQL_ERROR;
+        }
+
+        /* check state */
+        if( pstmt->asyn_on == en_NullProc )
+        {
+                if( pstmt->asyn_on == en_stmt_allocated
+                 || pstmt->asyn_on >= en_stmt_needdata )
+                {
+                        sqlstat = en_S1010;
+                }
+        }
+        else if( pstmt->asyn_on != en_ColAttributes )
+        {
+                sqlstat = en_S1010;
+        }
+
+        if( sqlstat != en_00000 )
+        {
+                PUSHSQLERR ( pstmt->herr, sqlstat );
+
+                return SQL_ERROR;
+        }
+
+        /* call driver */
+        hproc = _iodbcdm_getproc( pstmt->hdbc, en_ColAttributes );
+
+        if( hproc == SQL_NULL_HPROC )
+        {
+                PUSHSQLERR ( pstmt->herr, en_IM001 );
+
+                return SQL_ERROR;
+        }
+
+        CALL_DRIVER ( pstmt->hdbc,  retcode, hproc, en_ColAttributes, (
+                        pstmt->dhstmt,
+                        icol,
+                        fDescType,
+                        rgbDesc,
+                        cbDescMax,
+                        pcbDesc,
+                        pfDesc) )
 
 #if 0
-       retcode = hproc(pstmt->dhstmt,
-                       icol,
-                       fDescType,
-                       rgbDesc,
-                       cbDescMax,
-                       pcbDesc,
-                       pfDesc );
+        retcode = hproc(pstmt->dhstmt,
+                        icol,
+                        fDescType,
+                        rgbDesc,
+                        cbDescMax,
+                        pcbDesc,
+                        pfDesc );
 #endif
 
-       /* state transition */
-       if( pstmt->asyn_on == en_ColAttributes )
-       {
-               switch( retcode )
-               {
-                       case SQL_SUCCESS:
-                       case SQL_SUCCESS_WITH_INFO:
-                       case SQL_ERROR:
-                               pstmt->asyn_on = en_NullProc;
-                               break;
-
-                       default:
-                               return retcode;
-               }
-       }
-
-       switch( pstmt->state )
-       {
-               case en_stmt_prepared:
-               case en_stmt_cursoropen:
-               case en_stmt_fetched:
-               case en_stmt_xfetched:
-                       if( retcode == SQL_STILL_EXECUTING )
-                       {
-                               pstmt->asyn_on = en_ColAttributes;
-                       }
-                       break;
-
-               default:
-                       break;
-       }
-
-       return retcode;
+        /* state transition */
+        if( pstmt->asyn_on == en_ColAttributes )
+        {
+                switch( retcode )
+                {
+                        case SQL_SUCCESS:
+                        case SQL_SUCCESS_WITH_INFO:
+                        case SQL_ERROR:
+                                pstmt->asyn_on = en_NullProc;
+                                break;
+
+                        default:
+                                return retcode;
+                }
+        }
+
+        switch( pstmt->state )
+        {
+                case en_stmt_prepared:
+                case en_stmt_cursoropen:
+                case en_stmt_fetched:
+                case en_stmt_xfetched:
+                        if( retcode == SQL_STILL_EXECUTING )
+                        {
+                                pstmt->asyn_on = en_ColAttributes;
+                        }
+                        break;
+
+                default:
+                        break;
+        }
+
+        return retcode;
 }