@@ -780,6 +780,8 @@ PHP_MINIT_FUNCTION(odbc)
780
780
REGISTER_LONG_CONSTANT ("SQL_TYPE_DATE" , SQL_TYPE_DATE , CONST_PERSISTENT | CONST_CS );
781
781
REGISTER_LONG_CONSTANT ("SQL_TYPE_TIME" , SQL_TYPE_TIME , CONST_PERSISTENT | CONST_CS );
782
782
REGISTER_LONG_CONSTANT ("SQL_TYPE_TIMESTAMP" , SQL_TYPE_TIMESTAMP , CONST_PERSISTENT | CONST_CS );
783
+ REGISTER_LONG_CONSTANT ("SQL_TYPE_WVARCHAR" , SQL_TYPE_WVARCHAR , CONST_PERSISTENT | CONST_CS );
784
+ REGISTER_LONG_CONSTANT ("SQL_TYPE_WLONGVARCHAR" , SQL_TYPE_WLONGVARCHAR , CONST_PERSISTENT | CONST_CS );
783
785
784
786
/*
785
787
* SQLSpecialColumns values
@@ -966,6 +968,8 @@ int odbc_bindcols(odbc_result *result TSRMLS_DC)
966
968
case SQL_VARBINARY :
967
969
case SQL_LONGVARBINARY :
968
970
case SQL_LONGVARCHAR :
971
+ case SQL_WVARCHAR :
972
+ case SQL_WLONGVARCHAR :
969
973
result -> values [i ].value = NULL ;
970
974
break ;
971
975
@@ -1724,6 +1728,8 @@ static void php_odbc_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type)
1724
1728
if (result -> binmode == 1 ) {
1725
1729
sql_c_type = SQL_C_BINARY ;
1726
1730
}
1731
+ case SQL_WVARCHAR :
1732
+ case SQL_WLONGVARCHAR :
1727
1733
case SQL_LONGVARCHAR :
1728
1734
if (IS_SQL_LONG (result -> values [i ].coltype ) && result -> longreadlen <= 0 ) {
1729
1735
Z_STRVAL_P (tmp ) = STR_EMPTY_ALLOC ();
@@ -1876,6 +1882,8 @@ PHP_FUNCTION(odbc_fetch_into)
1876
1882
break ;
1877
1883
}
1878
1884
if (result -> binmode == 1 ) sql_c_type = SQL_C_BINARY ;
1885
+ case SQL_WVARCHAR :
1886
+ case SQL_WLONGVARCHAR :
1879
1887
case SQL_LONGVARCHAR :
1880
1888
if (IS_SQL_LONG (result -> values [i ].coltype ) && result -> longreadlen <= 0 ) {
1881
1889
Z_STRVAL_P (tmp ) = STR_EMPTY_ALLOC ();
@@ -2095,6 +2103,8 @@ PHP_FUNCTION(odbc_result)
2095
2103
break ;
2096
2104
}
2097
2105
case SQL_LONGVARCHAR :
2106
+ case SQL_WVARCHAR :
2107
+ case SQL_WLONGVARCHAR :
2098
2108
if (IS_SQL_LONG (result -> values [field_ind ].coltype )) {
2099
2109
if (result -> longreadlen <= 0 ) {
2100
2110
break ;
@@ -2132,7 +2142,9 @@ PHP_FUNCTION(odbc_result)
2132
2142
}
2133
2143
/* Reduce fieldlen by 1 if we have char data. One day we might
2134
2144
have binary strings... */
2135
- if (result -> values [field_ind ].coltype == SQL_LONGVARCHAR ) {
2145
+ if ((result -> values [field_ind ].coltype == SQL_LONGVARCHAR ) ||
2146
+ (result -> values [field_ind ].coltype == SQL_WVARCHAR ) ||
2147
+ (result -> values [field_ind ].coltype == SQL_WLONGVARCHAR )) {
2136
2148
fieldsize -= 1 ;
2137
2149
}
2138
2150
/* Don't duplicate result, saves one emalloc.
@@ -2247,6 +2259,8 @@ PHP_FUNCTION(odbc_result_all)
2247
2259
break ;
2248
2260
}
2249
2261
if (result -> binmode <= 1 ) sql_c_type = SQL_C_BINARY ;
2262
+ case SQL_WVARCHAR :
2263
+ case SQL_WLONGVARCHAR :
2250
2264
case SQL_LONGVARCHAR :
2251
2265
if (IS_SQL_LONG (result -> values [i ].coltype ) &&
2252
2266
result -> longreadlen <= 0 ) {
0 commit comments