]> git.saurik.com Git - wxWidgets.git/blobdiff - src/iodbc/info.c
fix for wxuse_iostreamh
[wxWidgets.git] / src / iodbc / info.c
index 600bcc6a3a7f03061ecc05160a7c3c7a0b80fd94..34bfdeec6418d656df148896101086d6bb19f54b 100644 (file)
@@ -1,6 +1,6 @@
 /** Information functions
-    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        <strings.h>
 #include        <stdio.h>
 
-RETCODE SQL_API        SQLDataSources( 
-                       HENV            henv,
-                       UWORD           fDir,
-                       UCHAR  FAR*     szDSN,
-                       SWORD           cbDSNMax,
-                       SWORD  FAR*     pcbDSN,
-                       UCHAR  FAR*     szDesc,
-                       SWORD           cbDescMax,
-                       SWORD  FAR*     pcbDesc )
+RETCODE SQL_API SQLDataSources(
+                        HENV            henv,
+                        UWORD           fDir,
+                        UCHAR  FAR*     szDSN,
+                        SWORD           cbDSNMax,
+                        SWORD  FAR*     pcbDSN,
+                        UCHAR  FAR*     szDesc,
+                        SWORD           cbDescMax,
+                        SWORD  FAR*     pcbDesc )
 {
-       GENV_t FAR*     genv    = (GENV_t FAR*)henv;
-       
-       if( henv == SQL_NULL_HENV )
-       {
-               return SQL_INVALID_HANDLE;
-       }
-
-       /* check argument */
-       if( cbDSNMax < 0 || cbDescMax < 0 )
-       {
-               PUSHSQLERR ( genv->herr, en_S1090 );
-               
-               return SQL_ERROR;
-       }
-
-       if( fDir != SQL_FETCH_FIRST
-        && fDir != SQL_FETCH_NEXT )
-       {
-               PUSHSQLERR ( genv->herr, en_S1103 );
-
-               return SQL_ERROR;
-       }
-
-       /*************************/
-
-       return SQL_NO_DATA_FOUND;
-} 
-
-RETCODE SQL_API        SQLDrivers(
-                       HENV            henv,
-                       UWORD           fDir,
-                       UCHAR  FAR*     szDrvDesc,
-                       SWORD           cbDrvDescMax,
-                       SWORD  FAR*     pcbDrvDesc,
-                       UCHAR  FAR*     szDrvAttr,
-                       SWORD           cbDrvAttrMax,
-                       SWORD  FAR*     pcbDrvAttr )
+        GENV_t FAR*     genv    = (GENV_t FAR*)henv;
+
+        if( henv == SQL_NULL_HENV )
+        {
+                return SQL_INVALID_HANDLE;
+        }
+
+        /* check argument */
+        if( cbDSNMax < 0 || cbDescMax < 0 )
+        {
+                PUSHSQLERR ( genv->herr, en_S1090 );
+
+                return SQL_ERROR;
+        }
+
+        if( fDir != SQL_FETCH_FIRST
+         && fDir != SQL_FETCH_NEXT )
+        {
+                PUSHSQLERR ( genv->herr, en_S1103 );
+
+                return SQL_ERROR;
+        }
+
+        /*************************/
+
+        return SQL_SUCCESS;
+}
+
+RETCODE SQL_API SQLDrivers(
+                        HENV            henv,
+                        UWORD           fDir,
+                        UCHAR  FAR*     szDrvDesc,
+                        SWORD           cbDrvDescMax,
+                        SWORD  FAR*     pcbDrvDesc,
+                        UCHAR  FAR*     szDrvAttr,
+                        SWORD           cbDrvAttrMax,
+                        SWORD  FAR*     pcbDrvAttr )
 {
-       GENV_t FAR*     genv    = (GENV_t FAR*)henv;
-
-       if( henv == SQL_NULL_HENV )
-       {
-               return SQL_INVALID_HANDLE;
-       }
-
-       if( cbDrvDescMax <  0
-        || cbDrvAttrMax <  0 
-        || cbDrvAttrMax == 1 )
-       {
-               PUSHSQLERR ( genv->herr, en_S1090 );
-
-               return SQL_ERROR;
-       }
-
-       if( fDir != SQL_FETCH_FIRST
-        || fDir != SQL_FETCH_NEXT )
-       {
-               PUSHSQLERR ( genv->herr, en_S1103 );
-
-               return SQL_ERROR;
-       }
-       
-       /*********************/
-       return SQL_SUCCESS;
+        GENV_t FAR*     genv    = (GENV_t FAR*)henv;
+
+        if( henv == SQL_NULL_HENV )
+        {
+                return SQL_INVALID_HANDLE;
+        }
+
+        if( cbDrvDescMax <  0
+         || cbDrvAttrMax <  0
+         || cbDrvAttrMax == 1 )
+        {
+                PUSHSQLERR ( genv->herr, en_S1090 );
+
+                return SQL_ERROR;
+        }
+
+        if( fDir != SQL_FETCH_FIRST
+         || fDir != SQL_FETCH_NEXT )
+        {
+                PUSHSQLERR ( genv->herr, en_S1103 );
+
+                return SQL_ERROR;
+        }
+
+        /*********************/
+        return SQL_SUCCESS;
 }
 
 
-RETCODE SQL_API        SQLGetInfo(
-                       HDBC            hdbc,
-                       UWORD           fInfoType,
-                       PTR             rgbInfoValue,
-                       SWORD           cbInfoValueMax,
-                       SWORD FAR*      pcbInfoValue )
+RETCODE SQL_API SQLGetInfo(
+                        HDBC            hdbc,
+                        UWORD           fInfoType,
+                        PTR             rgbInfoValue,
+                        SWORD           cbInfoValueMax,
+                        SWORD FAR*      pcbInfoValue )
 {
-       DBC_t  FAR*     pdbc    = (DBC_t FAR*)hdbc;
-       ENV_t  FAR*     penv;
-       STMT_t FAR*     pstmt   = NULL;
-       STMT_t FAR*     tpstmt;
-       HPROC           hproc;
-       RETCODE         retcode = SQL_SUCCESS;
-
-       DWORD           dword = 0;
-       int             size = 0, len = 0;
-       char            buf[16] = { '\0' };
-
-       if( hdbc == SQL_NULL_HDBC 
-        || pdbc->henv == SQL_NULL_HENV )
-       {
-               return SQL_INVALID_HANDLE;
-       }
-
-       if( cbInfoValueMax < 0 )
-       {
-               PUSHSQLERR ( pdbc->herr, en_S1090 );
-
-               return SQL_ERROR;
-       }
-
-       if( /* fInfoType < SQL_INFO_FIRST || */
-           ( fInfoType > SQL_INFO_LAST
-          && fInfoType < SQL_INFO_DRIVER_START ) )
-       {
-               PUSHSQLERR ( pdbc->herr, en_S1096 );
-
-               return SQL_ERROR;
-       }
-
-       if( fInfoType == SQL_ODBC_VER )
-       {
-               sprintf( buf, "%02d.%02d", 
-                       (ODBCVER)>>8, 0x00FF&(ODBCVER) );
-
-               
-               if( rgbInfoValue != NULL 
-                && cbInfoValueMax > 0 )
-               {
-                       len = STRLEN( buf );
-
-                       if( len < cbInfoValueMax - 1 )
-                       {
-                               len = cbInfoValueMax - 1;
-                               PUSHSQLERR ( pdbc->herr, en_01004 );
-
-                               retcode = SQL_SUCCESS_WITH_INFO;
-                       }
-
-                       STRNCPY( rgbInfoValue, buf, len );
-                       ((char FAR*)rgbInfoValue)[len] = '\0';
-               }
-
-               if( pcbInfoValue != NULL )
-               {
-                       *pcbInfoValue = (SWORD)len;
-               }
-
-               return retcode;
-       }
-
-       if( pdbc->state == en_dbc_allocated 
-        || pdbc->state == en_dbc_needdata )
-       {
-               PUSHSQLERR ( pdbc->herr, en_08003 );
-
-               return SQL_ERROR;
-       }
-
-       switch( fInfoType )
-       {
-               case SQL_DRIVER_HDBC:
-                       dword = (DWORD)(pdbc->dhdbc);
-                       size  = sizeof(dword);
-                       break;
-
-               case SQL_DRIVER_HENV:
-                       penv  = (ENV_t FAR*)(pdbc->henv);
-                       dword = (DWORD)(penv->dhenv);
-                       size  = sizeof(dword);
-                       break;
-
-               case SQL_DRIVER_HLIB:
-                       penv  = (ENV_t FAR*)(pdbc->henv);
-                       dword = (DWORD)(penv->hdll);
-                       size  = sizeof(dword);
-                       break;
-
-               case SQL_DRIVER_HSTMT:
-                       if( rgbInfoValue != NULL )
-                       {
-                               pstmt = *((STMT_t FAR**)rgbInfoValue);
-                       }
-
-                       for( tpstmt  = (STMT_t FAR*)(pdbc->hstmt);
-                            tpstmt != NULL;
-                            tpstmt  = tpstmt->next )
-                       {
-                               if( tpstmt == pstmt )
-                               {
-                                       break;
-                               }
-                       }
-
-                       if( tpstmt == NULL )
-                       {
-                               PUSHSQLERR ( pdbc->herr, en_S1009 );
-       
-                               return SQL_ERROR;
-                       } 
-
-                       dword = (DWORD)(pstmt->dhstmt);
-                       size  = sizeof(dword);
-                       break;
-
-               default:
-                       break;
-       }
-
-       if( size )
-       {
-               if( rgbInfoValue != NULL )
-               {
-                       *((DWORD*)rgbInfoValue) = dword;
-               }
-
-               if( pcbInfoValue != NULL )
-               {
-                       *(pcbInfoValue) = (SWORD)size;
-               }
-
-               return SQL_SUCCESS;
-       }
-
-       hproc = _iodbcdm_getproc( hdbc, en_GetInfo );
-
-       if( hproc == SQL_NULL_HPROC )
-       {
-               PUSHSQLERR ( pdbc->herr, en_IM001 );
-
-               return SQL_ERROR;
-       }
-
-       CALL_DRIVER ( hdbc, retcode, hproc, en_GetInfo, (
-                       pdbc->dhdbc, 
-                       fInfoType,
-                       rgbInfoValue,
-                       cbInfoValueMax,
-                       pcbInfoValue ) )
+        DBC_t  FAR*     pdbc    = (DBC_t FAR*)hdbc;
+        ENV_t  FAR*     penv;
+        STMT_t FAR*     pstmt   = NULL;
+        STMT_t FAR*     tpstmt;
+        HPROC           hproc;
+        RETCODE         retcode = SQL_SUCCESS;
+
+        DWORD           dword;
+        int             size = 0, len = 0;
+        char            buf[16] = { '\0' };
+
+        if( hdbc == SQL_NULL_HDBC
+         || pdbc->henv == SQL_NULL_HENV )
+        {
+                return SQL_INVALID_HANDLE;
+        }
+
+        if( cbInfoValueMax < 0 )
+        {
+                PUSHSQLERR ( pdbc->herr, en_S1090 );
+
+                return SQL_ERROR;
+        }
+
+        if( /* fInfoType < SQL_INFO_FIRST || */
+            ( fInfoType > SQL_INFO_LAST
+           && fInfoType < SQL_INFO_DRIVER_START ) )
+        {
+                PUSHSQLERR ( pdbc->herr, en_S1096 );
+
+                return SQL_ERROR;
+        }
+
+        if( fInfoType == SQL_ODBC_VER )
+        {
+                sprintf( buf, "%02d.%02d",
+                        (ODBCVER)>>8, 0x00FF&(ODBCVER) );
+
+
+                if( rgbInfoValue != NULL
+                 && cbInfoValueMax > 0 )
+                {
+                        len = STRLEN( buf );
+
+                        if( len < cbInfoValueMax - 1 )
+                        {
+                                len = cbInfoValueMax - 1;
+                                PUSHSQLERR ( pdbc->herr, en_01004 );
+
+                                retcode = SQL_SUCCESS_WITH_INFO;
+                        }
+
+                        STRNCPY( rgbInfoValue, buf, len );
+                        ((char FAR*)rgbInfoValue)[len] = '\0';
+                }
+
+                if( pcbInfoValue != NULL )
+                {
+                        *pcbInfoValue = (SWORD)len;
+                }
+
+                return retcode;
+        }
+
+        if( pdbc->state == en_dbc_allocated
+         || pdbc->state == en_dbc_needdata )
+        {
+                PUSHSQLERR ( pdbc->herr, en_08003 );
+
+                return SQL_ERROR;
+        }
+
+        switch( fInfoType )
+        {
+                case SQL_DRIVER_HDBC:
+                        dword = (DWORD)(pdbc->dhdbc);
+                        size  = sizeof(dword);
+                        break;
+
+                case SQL_DRIVER_HENV:
+                        penv  = (ENV_t FAR*)(pdbc->henv);
+                        dword = (DWORD)(penv->dhenv);
+                        size  = sizeof(dword);
+                        break;
+
+                case SQL_DRIVER_HLIB:
+                        penv  = (ENV_t FAR*)(pdbc->henv);
+                        dword = (DWORD)(penv->hdll);
+                        size  = sizeof(dword);
+                        break;
+
+                case SQL_DRIVER_HSTMT:
+                        if( rgbInfoValue != NULL )
+                        {
+                                pstmt = *((STMT_t FAR**)rgbInfoValue);
+                        }
+
+                        for( tpstmt  = (STMT_t FAR*)(pdbc->hstmt);
+                             tpstmt != NULL;
+                             tpstmt  = tpstmt->next )
+                        {
+                                if( tpstmt == pstmt )
+                                {
+                                        break;
+                                }
+                        }
+
+                        if( tpstmt == NULL )
+                        {
+                                PUSHSQLERR ( pdbc->herr, en_S1009 );
+
+                                return SQL_ERROR;
+                        }
+
+                        dword = (DWORD)(pstmt->dhstmt);
+                        size  = sizeof(dword);
+                        break;
+
+                default:
+                        break;
+        }
+
+        if( size )
+        {
+                if( rgbInfoValue != NULL )
+                {
+                        *((DWORD*)rgbInfoValue) = dword;
+                }
+
+                if( pcbInfoValue != NULL )
+                {
+                        *(pcbInfoValue) = (SWORD)size;
+                }
+
+                return SQL_SUCCESS;
+        }
+
+        hproc = _iodbcdm_getproc( hdbc, en_GetInfo );
+
+        if( hproc == SQL_NULL_HPROC )
+        {
+                PUSHSQLERR ( pdbc->herr, en_IM001 );
+
+                return SQL_ERROR;
+        }
+
+        CALL_DRIVER ( hdbc, retcode, hproc, en_GetInfo, (
+                        pdbc->dhdbc,
+                        fInfoType,
+                        rgbInfoValue,
+                        cbInfoValueMax,
+                        pcbInfoValue ) )
 
 #if 0
-       retcode = hproc(pdbc->dhdbc, 
-                       fInfoType,
-                       rgbInfoValue,
-                       cbInfoValueMax,
-                       pcbInfoValue );
+        retcode = hproc(pdbc->dhdbc,
+                        fInfoType,
+                        rgbInfoValue,
+                        cbInfoValueMax,
+                        pcbInfoValue );
 #endif
 
-       if( retcode == SQL_ERROR 
-        && fInfoType == SQL_DRIVER_ODBC_VER )
-       {
-               STRCPY( buf, "01.00" );
+        if( retcode == SQL_ERROR
+         && fInfoType == SQL_DRIVER_ODBC_VER )
+        {
+                STRCPY( buf, "01.00" );
 
-               if( rgbInfoValue != NULL 
-                && cbInfoValueMax > 0 )
-               {
-                       len = STRLEN( buf );
+                if( rgbInfoValue != NULL
+                 && cbInfoValueMax > 0 )
+                {
+                        len = STRLEN( buf );
 
-                       if( len < cbInfoValueMax - 1 )
-                       {
-                               len = cbInfoValueMax - 1;
-                               PUSHSQLERR ( pdbc->herr, en_01004 );
-                       }
+                        if( len < cbInfoValueMax - 1 )
+                        {
+                                len = cbInfoValueMax - 1;
+                                PUSHSQLERR ( pdbc->herr, en_01004 );
+                        }
 
-                       STRNCPY( rgbInfoValue, buf, len );
-                       ((char FAR*)rgbInfoValue)[len] = '\0';
-               }
+                        STRNCPY( rgbInfoValue, buf, len );
+                        ((char FAR*)rgbInfoValue)[len] = '\0';
+                }
 
-               if( pcbInfoValue != NULL )
-               {
-                       *pcbInfoValue = (SWORD)len;
-               }
+                if( pcbInfoValue != NULL )
+                {
+                        *pcbInfoValue = (SWORD)len;
+                }
 
-               /* what should we return in this case ???? */
-       }
+                /* what should we return in this case ???? */
+        }
 
-       return retcode;
-}      
+        return retcode;
+}
 
 RETCODE SQL_API SQLGetFunctions(
-                       HDBC            hdbc,
-                       UWORD           fFunc,
-                       UWORD FAR*      pfExists )
+                        HDBC            hdbc,
+                        UWORD           fFunc,
+                        UWORD FAR*      pfExists )
 {
-       DBC_t FAR*      pdbc    = (DBC_t FAR*)hdbc;
-       HPROC           hproc;
-       RETCODE         retcode;
+        DBC_t FAR*      pdbc    = (DBC_t FAR*)hdbc;
+        HPROC           hproc;
+        RETCODE         retcode;
 
-       if( hdbc == SQL_NULL_HDBC )
-       {
-               return SQL_INVALID_HANDLE;
-       }
+        if( hdbc == SQL_NULL_HDBC )
+        {
+                return SQL_INVALID_HANDLE;
+        }
 
-       if( fFunc > SQL_EXT_API_LAST )
-       {
-               PUSHSQLERR ( pdbc->herr, en_S1095 );
+        if( fFunc > SQL_EXT_API_LAST )
+        {
+                PUSHSQLERR ( pdbc->herr, en_S1095 );
 
-               return SQL_ERROR;
-       }
+                return SQL_ERROR;
+        }
 
-       if( pdbc->state == en_dbc_allocated 
-        || pdbc->state == en_dbc_needdata )
-       {
-               PUSHSQLERR ( pdbc->herr, en_S1010 );
+        if( pdbc->state == en_dbc_allocated
+         || pdbc->state == en_dbc_needdata )
+        {
+                PUSHSQLERR ( pdbc->herr, en_S1010 );
 
-               return SQL_ERROR;
-       }
+                return SQL_ERROR;
+        }
 
-       if( pfExists == NULL )
-       {
-               return SQL_SUCCESS;
-       }
+        if( pfExists == NULL )
+        {
+                return SQL_SUCCESS;
+        }
 
-       hproc = _iodbcdm_getproc( hdbc, en_GetFunctions );
+        hproc = _iodbcdm_getproc( hdbc, en_GetFunctions );
 
-       if( hproc != SQL_NULL_HPROC )
-       {
-               CALL_DRIVER ( hdbc, retcode, hproc, en_GetFunctions, (
-                               pdbc->dhdbc, fFunc, pfExists ) )
+        if( hproc != SQL_NULL_HPROC )
+        {
+                CALL_DRIVER ( hdbc, retcode, hproc, en_GetFunctions, (
+                                pdbc->dhdbc, fFunc, pfExists ) )
 
 #if 0
-               retcode = hproc( pdbc->dhdbc, fFunc, pfExists );
+                retcode = hproc( pdbc->dhdbc, fFunc, pfExists );
 #endif
-               return retcode;
-       }
-
-       if( fFunc == SQL_API_SQLSETPARAM )
-       {
-               fFunc = SQL_API_SQLBINDPARAMETER;
-       }
-
-       if( fFunc != SQL_API_ALL_FUNCTIONS )
-       {
-               hproc = _iodbcdm_getproc( hdbc, fFunc );
-
-               if( hproc == SQL_NULL_HPROC )
-               {
-                       *pfExists = (UWORD)0;
-               }
-               else
-               {
-                       *pfExists = (UWORD)1;
-               }
-
-               return SQL_SUCCESS;
-       }
-
-       for( fFunc=0 ; fFunc < 100; fFunc ++ )
-       {
-               hproc = _iodbcdm_getproc( hdbc, fFunc );
-
-               if( hproc == SQL_NULL_HPROC )
-               {
-                       pfExists[fFunc] = (UWORD)0;
-               }
-               else
-               {
-                       pfExists[fFunc] = (UWORD)1;
-               }
-       }
-
-       return SQL_SUCCESS;
+                return retcode;
+        }
+
+        if( fFunc == SQL_API_SQLSETPARAM )
+        {
+                fFunc = SQL_API_SQLBINDPARAMETER;
+        }
+
+        if( fFunc != SQL_API_ALL_FUNCTIONS )
+        {
+                hproc = _iodbcdm_getproc( hdbc, fFunc );
+
+                if( hproc == SQL_NULL_HPROC )
+                {
+                        *pfExists = (UWORD)0;
+                }
+                else
+                {
+                        *pfExists = (UWORD)1;
+                }
+
+                return SQL_SUCCESS;
+        }
+
+        for( fFunc=0 ; fFunc < 100; fFunc ++ )
+        {
+                hproc = _iodbcdm_getproc( hdbc, fFunc );
+
+                if( hproc == SQL_NULL_HPROC )
+                {
+                        pfExists[fFunc] = (UWORD)0;
+                }
+                else
+                {
+                        pfExists[fFunc] = (UWORD)1;
+                }
+        }
+
+        return SQL_SUCCESS;
 }