]> granicus.if.org Git - php/commitdiff
more compliance with the ODBC 3.0
authorAnatol Belski <ab@php.net>
Thu, 2 Apr 2015 12:23:23 +0000 (14:23 +0200)
committerAnatol Belski <ab@php.net>
Sat, 4 Apr 2015 19:42:17 +0000 (21:42 +0200)
ext/odbc/php_odbc.c
ext/odbc/php_odbc_includes.h

index d75d3012606cbc808f843061a24ec077d9dcea1b..354b9b855196750cfe5bd0d4da2624977add6e0e 100644 (file)
@@ -960,9 +960,9 @@ int odbc_bindcols(odbc_result *result TSRMLS_DC)
                charextraalloc = 0;
                colfieldid = SQL_COLUMN_DISPLAY_SIZE;
 
-               rc = SQLColAttributes(result->stmt, (SQLUSMALLINT)(i+1), SQL_COLUMN_NAME, 
+               rc = PHP_ODBC_SQLCOLATTRIBUTE(result->stmt, (SQLUSMALLINT)(i+1), SQL_COLUMN_NAME, 
                                result->values[i].name, sizeof(result->values[i].name), &colnamelen, 0);
-               rc = SQLColAttributes(result->stmt, (SQLUSMALLINT)(i+1), SQL_COLUMN_TYPE, 
+               rc = PHP_ODBC_SQLCOLATTRIBUTE(result->stmt, (SQLUSMALLINT)(i+1), SQL_COLUMN_TYPE, 
                                NULL, 0, NULL, &result->values[i].coltype);
                
                /* Don't bind LONG / BINARY columns, so that fetch behaviour can
@@ -997,7 +997,7 @@ int odbc_bindcols(odbc_result *result TSRMLS_DC)
                                charextraalloc = 1;
 #endif
                        default:
-                               rc = SQLColAttributes(result->stmt, (SQLUSMALLINT)(i+1), colfieldid,
+                               rc = PHP_ODBC_SQLCOLATTRIBUTE(result->stmt, (SQLUSMALLINT)(i+1), colfieldid,
                                                                NULL, 0, NULL, &displaysize);
                                /* Workaround for Oracle ODBC Driver bug (#50162) when fetching TIMESTAMP column */
                                if (result->values[i].coltype == SQL_TIMESTAMP) {
@@ -1091,7 +1091,7 @@ void odbc_column_lengths(INTERNAL_FUNCTION_PARAMETERS, int type)
                RETURN_FALSE;
        }
 
-       SQLColAttributes(result->stmt, (SQLUSMALLINT)pv_num, (SQLUSMALLINT) (type?SQL_COLUMN_SCALE:SQL_COLUMN_PRECISION), NULL, 0, NULL, &len);
+       PHP_ODBC_SQLCOLATTRIBUTE(result->stmt, (SQLUSMALLINT)pv_num, (SQLUSMALLINT) (type?SQL_COLUMN_SCALE:SQL_COLUMN_PRECISION), NULL, 0, NULL, &len);
 
        RETURN_LONG(len);
 }
@@ -2135,7 +2135,7 @@ PHP_FUNCTION(odbc_result)
                                   fieldsize = result->longreadlen;
                                }
                        } else {
-                          SQLColAttributes(result->stmt, (SQLUSMALLINT)(field_ind + 1), 
+                          PHP_ODBC_SQLCOLATTRIBUTE(result->stmt, (SQLUSMALLINT)(field_ind + 1), 
                                                                (SQLUSMALLINT)((sql_c_type == SQL_C_BINARY) ? SQL_COLUMN_LENGTH :
                                                                SQL_COLUMN_DISPLAY_SIZE),
                                                                NULL, 0, NULL, &fieldsize);
@@ -2871,7 +2871,7 @@ PHP_FUNCTION(odbc_field_type)
                RETURN_FALSE;
        }
 
-       SQLColAttributes(result->stmt, (SQLUSMALLINT)pv_num, SQL_COLUMN_TYPE_NAME, tmp, 31, &tmplen, NULL);
+       PHP_ODBC_SQLCOLATTRIBUTE(result->stmt, (SQLUSMALLINT)pv_num, SQL_COLUMN_TYPE_NAME, tmp, 31, &tmplen, NULL);
        RETURN_STRING(tmp,1)
 }
 /* }}} */
index 15bb737a8beb84d11e52883d23e57e4a1b2aaf1b..181688ae7f20516bbf554cf2a881d66f733c968b 100644 (file)
@@ -281,8 +281,10 @@ void odbc_sql_error(ODBC_SQL_ERROR_PARAMS);
 
 #if defined(ODBCVER) && (ODBCVER >= 0x0300)
 #define IS_SQL_LONG(x) (x == SQL_LONGVARBINARY || x == SQL_LONGVARCHAR || x == SQL_WLONGVARCHAR)
+#define PHP_ODBC_SQLCOLATTRIBUTE SQLColAttribute
 #else
 #define IS_SQL_LONG(x) (x == SQL_LONGVARBINARY || x == SQL_LONGVARCHAR)
+#define PHP_ODBC_SQLCOLATTRIBUTE SQLColAttributes
 #endif
 #define IS_SQL_BINARY(x) (x == SQL_BINARY || x == SQL_VARBINARY || x == SQL_LONGVARBINARY)