[PHP-CVS] cvs: php-src /ext/odbc php_odbc.c php_odbc_includes.h

2008-08-29 Thread Patrick van Kleef
iodbc   Fri Aug 29 19:15:39 2008 UTC

  Modified files:  
/php-src/ext/odbc   php_odbc.c php_odbc_includes.h 
  Log:
  - Added odbc.default_cursortype to control the ODBC cursormodel (bug #43668)
  #[DOC]
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/odbc/php_odbc.c?r1=1.210&r2=1.211&diff_format=u
Index: php-src/ext/odbc/php_odbc.c
diff -u php-src/ext/odbc/php_odbc.c:1.210 php-src/ext/odbc/php_odbc.c:1.211
--- php-src/ext/odbc/php_odbc.c:1.210   Fri Aug 29 16:42:49 2008
+++ php-src/ext/odbc/php_odbc.c Fri Aug 29 19:15:39 2008
@@ -20,7 +20,7 @@
+--+
 */
 
-/* $Id: php_odbc.c,v 1.210 2008/08/29 16:42:49 iodbc Exp $ */
+/* $Id: php_odbc.c,v 1.211 2008/08/29 19:15:39 iodbc Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -677,6 +677,50 @@
 }
 /* }}} */
 
+
+/* {{{ PHP_INI_DISP(display_cursortype)
+ */
+static PHP_INI_DISP(display_cursortype)
+{
+   char *value;
+   TSRMLS_FETCH();
+
+   if (type == PHP_INI_DISPLAY_ORIG && ini_entry->modified) {
+   value = ini_entry->orig_value;
+   } else if (ini_entry->value) {
+   value = ini_entry->value;
+   } else {
+   value = NULL;
+   }
+
+   if (value) {
+   switch (atoi (value))
+ {
+   case SQL_CURSOR_FORWARD_ONLY:
+   PUTS ("Forward Only cursor");
+   break;
+
+   case SQL_CURSOR_STATIC:
+   PUTS ("Static cursor");
+   break;
+
+   case SQL_CURSOR_KEYSET_DRIVEN:
+   PUTS ("Keyset driven cursor");
+   break;
+
+   case SQL_CURSOR_DYNAMIC:
+   PUTS ("Dynamic cursor");
+   break;
+
+   default:
+   php_printf("Unknown cursor model %s", value);
+   break;
+ }
+   }
+}
+
+/* }}} */
+
 /* {{{ PHP_INI_BEGIN 
  */
 PHP_INI_BEGIN()
@@ -698,6 +742,8 @@
defaultbinmode, zend_odbc_globals, odbc_globals, 
display_binmode)
STD_PHP_INI_BOOLEAN("odbc.check_persistent", "1", PHP_INI_SYSTEM, 
OnUpdateLong,
check_persistent, zend_odbc_globals, odbc_globals)
+   STD_PHP_INI_ENTRY_EX("odbc.default_cursortype", "3", PHP_INI_ALL, 
OnUpdateLong, 
+   default_cursortype, zend_odbc_globals, odbc_globals, 
display_cursortype)
 PHP_INI_END()
 /* }}} */
 
@@ -1173,7 +1219,8 @@
/* Try to set CURSOR_TYPE to dynamic. Driver will 
replace this with other
   type if not possible.
*/
-   if (SQLSetStmtOption(result->stmt, SQL_CURSOR_TYPE, 
SQL_CURSOR_DYNAMIC) == SQL_ERROR) {
+   int cursortype = ODBCG(default_cursortype);
+   if (SQLSetStmtOption(result->stmt, SQL_CURSOR_TYPE, 
cursortype) == SQL_ERROR) {
odbc_sql_error(conn, result->stmt, " 
SQLSetStmtOption");
SQLFreeStmt(result->stmt, SQL_DROP);
efree(result);
@@ -1561,7 +1608,8 @@
/* Try to set CURSOR_TYPE to dynamic. Driver will 
replace this with other
   type if not possible.
 */
-   if (SQLSetStmtOption(result->stmt, SQL_CURSOR_TYPE, 
SQL_CURSOR_DYNAMIC) == SQL_ERROR) {
+   int cursortype = ODBCG(default_cursortype);
+   if (SQLSetStmtOption(result->stmt, SQL_CURSOR_TYPE, 
cursortype) == SQL_ERROR) {
odbc_sql_error(conn, result->stmt, " 
SQLSetStmtOption");
SQLFreeStmt(result->stmt, SQL_DROP);
efree(result);
http://cvs.php.net/viewvc.cgi/php-src/ext/odbc/php_odbc_includes.h?r1=1.19&r2=1.20&diff_format=u
Index: php-src/ext/odbc/php_odbc_includes.h
diff -u php-src/ext/odbc/php_odbc_includes.h:1.19 
php-src/ext/odbc/php_odbc_includes.h:1.20
--- php-src/ext/odbc/php_odbc_includes.h:1.19   Fri Aug 29 16:42:50 2008
+++ php-src/ext/odbc/php_odbc_includes.hFri Aug 29 19:15:39 2008
@@ -18,7 +18,7 @@
+--+
 */
 
-/* $Id: php_odbc_includes.h,v 1.19 2008/08/29 16:42:50 iodbc Exp $ */
+/* $Id: php_odbc_includes.h,v 1.20 2008/08/29 19:15:39 iodbc Exp $ */
 
 #ifndef PHP_ODBC_INCLUDES_H
 #define PHP_ODBC_INCLUDES_H
@@ -265,6 +265,7 @@
int defConn;
 long defaultlrl;
 long defaultbinmode;
+long default_cursortype;
 char laststate[6];
 char lasterrormsg[SQL_MAX_MESSAGE_LENGTH];
HashTable *resource_list;



-- 
PHP CVS Mailing List (http://www

[PHP-CVS] cvs: php-src /ext/odbc php_odbc.c php_odbc_includes.h

2007-03-12 Thread Stanislav Malyshev
stasTue Mar 13 00:12:09 2007 UTC

  Modified files:  
/php-src/ext/odbc   php_odbc.c php_odbc_includes.h 
  Log:
  MFB: fix odbc resource handling, patch by Dave Lawson
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/odbc/php_odbc.c?r1=1.201&r2=1.202&diff_format=u
Index: php-src/ext/odbc/php_odbc.c
diff -u php-src/ext/odbc/php_odbc.c:1.201 php-src/ext/odbc/php_odbc.c:1.202
--- php-src/ext/odbc/php_odbc.c:1.201   Sat Feb 24 16:25:54 2007
+++ php-src/ext/odbc/php_odbc.c Tue Mar 13 00:12:08 2007
@@ -20,7 +20,7 @@
+--+
 */
 
-/* $Id: php_odbc.c,v 1.201 2007/02/24 16:25:54 helly Exp $ */
+/* $Id: php_odbc.c,v 1.202 2007/03/13 00:12:08 stas Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -915,11 +915,10 @@
} else {
result->values = NULL;
}
-   result->id = zend_list_insert(result, le_result);   
zend_list_addref(conn->id);
result->conn_ptr = conn;
result->fetched = 0;
-   RETURN_RESOURCE(result->id);
+   ZEND_REGISTER_RESOURCE(return_value, result, le_result);  
 }
 /* }}} */
 
@@ -1328,12 +1327,11 @@
} else {
result->values = NULL;
}
-   result->id = zend_list_insert(result, le_result);
zend_list_addref(conn->id);
result->conn_ptr = conn;
result->fetched = 0;

-   RETURN_RESOURCE(result->id);
+   ZEND_REGISTER_RESOURCE(return_value, result, le_result);
 }
 /* }}} */
 
@@ -2037,7 +2035,7 @@
result->values = NULL;
}

-   zend_list_delete(result->id);
+   zend_list_delete(Z_LVAL_PP(pv_res));

RETURN_TRUE;
 }
http://cvs.php.net/viewvc.cgi/php-src/ext/odbc/php_odbc_includes.h?r1=1.16&r2=1.17&diff_format=u
Index: php-src/ext/odbc/php_odbc_includes.h
diff -u php-src/ext/odbc/php_odbc_includes.h:1.16 
php-src/ext/odbc/php_odbc_includes.h:1.17
--- php-src/ext/odbc/php_odbc_includes.h:1.16   Mon Jan  1 09:29:26 2007
+++ php-src/ext/odbc/php_odbc_includes.hTue Mar 13 00:12:08 2007
@@ -18,7 +18,7 @@
+--+
 */
 
-/* $Id: php_odbc_includes.h,v 1.16 2007/01/01 09:29:26 sebastian Exp $ */
+/* $Id: php_odbc_includes.h,v 1.17 2007/03/13 00:12:08 stas Exp $ */
 
 #ifndef PHP_ODBC_INCLUDES_H
 #define PHP_ODBC_INCLUDES_H
@@ -236,7 +236,6 @@
 
 typedef struct odbc_result {
ODBC_SQL_STMT_T stmt;
-   int id;
odbc_result_value *values;
SWORD numcols;
SWORD numparams;

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src /ext/odbc php_odbc.c php_odbc_includes.h

2006-06-13 Thread Dmitry Stogov
dmitry  Wed Jun 14 05:51:16 2006 UTC

  Modified files:  
/php-src/ext/odbc   php_odbc.c php_odbc_includes.h 
  Log:
  Fixed compilation (automatic module globals management).
  
  
http://cvs.php.net/viewcvs.cgi/php-src/ext/odbc/php_odbc.c?r1=1.195&r2=1.196&diff_format=u
Index: php-src/ext/odbc/php_odbc.c
diff -u php-src/ext/odbc/php_odbc.c:1.195 php-src/ext/odbc/php_odbc.c:1.196
--- php-src/ext/odbc/php_odbc.c:1.195   Tue Jun 13 13:12:19 2006
+++ php-src/ext/odbc/php_odbc.c Wed Jun 14 05:51:16 2006
@@ -20,7 +20,7 @@
+--+
 */
 
-/* $Id: php_odbc.c,v 1.195 2006/06/13 13:12:19 dmitry Exp $ */
+/* $Id: php_odbc.c,v 1.196 2006/06/14 05:51:16 dmitry Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -384,23 +384,23 @@
  */
 PHP_INI_BEGIN()
STD_PHP_INI_BOOLEAN("odbc.allow_persistent", "1", PHP_INI_SYSTEM, 
OnUpdateLong,
-   allow_persistent, php_odbc_globals, odbc_globals)
+   allow_persistent, zend_odbc_globals, odbc_globals)
STD_PHP_INI_ENTRY_EX("odbc.max_persistent",  "-1", PHP_INI_SYSTEM, 
OnUpdateLong,
-   max_persistent, php_odbc_globals, odbc_globals, 
display_link_nums)
+   max_persistent, zend_odbc_globals, odbc_globals, 
display_link_nums)
STD_PHP_INI_ENTRY_EX("odbc.max_links", "-1", PHP_INI_SYSTEM, 
OnUpdateLong,
-   max_links, php_odbc_globals, odbc_globals, 
display_link_nums)
+   max_links, zend_odbc_globals, odbc_globals, 
display_link_nums)
STD_PHP_INI_ENTRY("odbc.default_db", NULL, PHP_INI_ALL, OnUpdateString,
-   defDB, php_odbc_globals, odbc_globals)
+   defDB, zend_odbc_globals, odbc_globals)
STD_PHP_INI_ENTRY("odbc.default_user", NULL, PHP_INI_ALL, 
OnUpdateString,
-   defUser, php_odbc_globals, odbc_globals)
+   defUser, zend_odbc_globals, odbc_globals)
STD_PHP_INI_ENTRY_EX("odbc.default_pw", NULL, PHP_INI_ALL, 
OnUpdateString,
-   defPW, php_odbc_globals, odbc_globals, display_defPW)
+   defPW, zend_odbc_globals, odbc_globals, display_defPW)
STD_PHP_INI_ENTRY_EX("odbc.defaultlrl", "4096", PHP_INI_ALL, 
OnUpdateLong,
-   defaultlrl, php_odbc_globals, odbc_globals, display_lrl)
+   defaultlrl, zend_odbc_globals, odbc_globals, 
display_lrl)
STD_PHP_INI_ENTRY_EX("odbc.defaultbinmode", "1", PHP_INI_ALL, 
OnUpdateLong,
-   defaultbinmode, php_odbc_globals, odbc_globals, 
display_binmode)
+   defaultbinmode, zend_odbc_globals, odbc_globals, 
display_binmode)
STD_PHP_INI_BOOLEAN("odbc.check_persistent", "1", PHP_INI_SYSTEM, 
OnUpdateLong,
-   check_persistent, php_odbc_globals, odbc_globals)
+   check_persistent, zend_odbc_globals, odbc_globals)
 PHP_INI_END()
 /* }}} */
 
http://cvs.php.net/viewcvs.cgi/php-src/ext/odbc/php_odbc_includes.h?r1=1.13&r2=1.14&diff_format=u
Index: php-src/ext/odbc/php_odbc_includes.h
diff -u php-src/ext/odbc/php_odbc_includes.h:1.13 
php-src/ext/odbc/php_odbc_includes.h:1.14
--- php-src/ext/odbc/php_odbc_includes.h:1.13   Sun Jan  1 13:09:52 2006
+++ php-src/ext/odbc/php_odbc_includes.hWed Jun 14 05:51:16 2006
@@ -18,7 +18,7 @@
+--+
 */
 
-/* $Id: php_odbc_includes.h,v 1.13 2006/01/01 13:09:52 sniper Exp $ */
+/* $Id: php_odbc_includes.h,v 1.14 2006/06/14 05:51:16 dmitry Exp $ */
 
 #ifndef PHP_ODBC_INCLUDES_H
 #define PHP_ODBC_INCLUDES_H
@@ -249,7 +249,7 @@
odbc_connection *conn_ptr;
 } odbc_result;
 
-typedef struct {
+ZEND_BEGIN_MODULE_GLOBALS(odbc)
char *defDB;
char *defUser;
char *defPW;
@@ -266,7 +266,7 @@
 char lasterrormsg[SQL_MAX_MESSAGE_LENGTH];
HashTable *resource_list;
HashTable *resource_plist;
-} php_odbc_globals;
+ZEND_END_MODULE_GLOBALS(odbc)
 
 int odbc_add_result(HashTable *list, odbc_result *result);
 odbc_result *odbc_get_result(HashTable *list, int count);
@@ -284,7 +284,7 @@
 #define IS_SQL_BINARY(x) (x == SQL_BINARY || x == SQL_VARBINARY || x == 
SQL_LONGVARBINARY)
 
 #ifdef ZTS
-# define ODBCG(v) TSRMG(odbc_globals_id, php_odbc_globals *, v)
+# define ODBCG(v) TSRMG(odbc_globals_id, zend_odbc_globals *, v)
 #else
 # define ODBCG(v) (odbc_globals.v)
 extern ZEND_API php_odbc_globals odbc_globals;

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src /ext/odbc php_odbc.c php_odbc_includes.h

2003-08-28 Thread Jani Taskinen
sniper  Thu Aug 28 12:35:33 2003 EDT

  Modified files:  
/php-src/ext/odbc   php_odbc.c php_odbc_includes.h 
  Log:
  Revert the patch per Dan\´s request
  
Index: php-src/ext/odbc/php_odbc.c
diff -u php-src/ext/odbc/php_odbc.c:1.173 php-src/ext/odbc/php_odbc.c:1.174
--- php-src/ext/odbc/php_odbc.c:1.173   Thu Aug 28 05:55:11 2003
+++ php-src/ext/odbc/php_odbc.c Thu Aug 28 12:35:32 2003
@@ -20,7 +20,7 @@
+--+
 */
 
-/* $Id: php_odbc.c,v 1.173 2003/08/28 09:55:11 sniper Exp $ */
+/* $Id: php_odbc.c,v 1.174 2003/08/28 16:35:32 sniper Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -460,7 +460,6 @@
REGISTER_LONG_CONSTANT("SQL_CHAR", SQL_CHAR, CONST_PERSISTENT | CONST_CS);
REGISTER_LONG_CONSTANT("SQL_VARCHAR", SQL_VARCHAR, CONST_PERSISTENT | 
CONST_CS);
REGISTER_LONG_CONSTANT("SQL_LONGVARCHAR", SQL_LONGVARCHAR, CONST_PERSISTENT | 
CONST_CS);
-   REGISTER_LONG_CONSTANT("SQL_BLOB", SQL_LONGVARBINARY, CONST_PERSISTENT | 
CONST_CS);
REGISTER_LONG_CONSTANT("SQL_DECIMAL", SQL_DECIMAL, CONST_PERSISTENT | 
CONST_CS);
REGISTER_LONG_CONSTANT("SQL_NUMERIC", SQL_NUMERIC, CONST_PERSISTENT | 
CONST_CS);
REGISTER_LONG_CONSTANT("SQL_BIT", SQL_BIT, CONST_PERSISTENT | CONST_CS);
@@ -654,7 +653,6 @@
case SQL_BINARY:
case SQL_VARBINARY:
case SQL_LONGVARBINARY:
-   case SQL_BLOB:
case SQL_LONGVARCHAR:
result->values[i].value = NULL;
break;
@@ -669,7 +667,7 @@
default:
rc = SQLColAttributes(result->stmt, (UWORD)(i+1), 
SQL_COLUMN_DISPLAY_SIZE,
NULL, 0, NULL, 
&displaysize);
-   displaysize = displaysize <= result->longreadlen ? 
displaysize :
+   displaysize = displaysize <= result->longreadlen ? 
displaysize : 
result->longreadlen;
result->values[i].value = (char *)emalloc(displaysize 
+ 1);
rc = SQLBindCol(result->stmt, (UWORD)(i+1), 
SQL_C_CHAR, result->values[i].value,
@@ -1419,19 +1417,7 @@
Z_STRVAL_P(tmp) = empty_string;
break;
}
-
-   if (result->binmode == 1) {
-   sql_c_type = SQL_C_BINARY;
-   }
-   case SQL_BLOB:
-   if (result->binmode <= 0) {
-   Z_STRVAL_P(tmp) = empty_string;
-   break;
-   }
-
-   if (result->binmode == 1) {
-   sql_c_type = SQL_C_BINARY;
-   }
+   if (result->binmode == 1) sql_c_type = SQL_C_BINARY;
case SQL_LONGVARCHAR:
if (IS_SQL_LONG(result->values[i].coltype) && 
result->longreadlen <= 0) {
Z_STRVAL_P(tmp) = empty_string;
@@ -1590,19 +1576,7 @@
Z_STRVAL_P(tmp) = empty_string;
break;
}
-
-   if (result->binmode == 1) {
-   sql_c_type = SQL_C_BINARY; 
-   }
-   case SQL_BLOB:
-   if (result->binmode <= 0) {
-   Z_STRVAL_P(tmp) = empty_string;
-   break;
-   }
-
-   if (result->binmode == 1) {
-   sql_c_type = SQL_C_BINARY;
-   }
+   if (result->binmode == 1) sql_c_type = SQL_C_BINARY; 
case SQL_LONGVARCHAR:
if (IS_SQL_LONG(result->values[i].coltype) && 
result->longreadlen <= 0) {
Z_STRVAL_P(tmp) = empty_string;
@@ -1820,15 +1794,8 @@
case SQL_BINARY:
case SQL_VARBINARY:
case SQL_LONGVARBINARY:
-   if (result->binmode <= 1) 
-   sql_c_type = SQL_C_BINARY;
-   if (result->binmode <= 0) 
-   break; 
-   case SQL_BLOB:
-   if (result->binmode <= 1) 
- 

Re: [PHP-CVS] cvs: php-src /ext/odbc php_odbc.c php_odbc_includes.h

2003-08-28 Thread Dan Kalowsky
On Thursday, August 28, 2003, at 10:38  AM, Jani Taskinen wrote:

On Thu, 28 Aug 2003, Dan Kalowsky wrote:
Thank you.  If you had read the commit you would notice that this is
for some people to test via a snapshot.  If it worked, I planned to
leave it in, if not, out it comes.
But it's of no use if it can't be compiled. :)
Having left this patch on a web page for people to download, I've found 
none of them have had issues with it.  It seems that SQL_BLOB may only 
be a DB2 thing.  I see no reason to keep this patch in any further, so 
feel free to revert it, or tell me how to remove the TAG status (1.173) 
before I revert it incorrectly.

>---<
Dan Kalowsky"Tonight I think I'll walk alone,
http://www.deadmime.org/~dankI'll find myself as I go home"
[EMAIL PROTECTED]- "Temptation",
[EMAIL PROTECTED]  New Order
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP-CVS] cvs: php-src /ext/odbc php_odbc.c php_odbc_includes.h

2003-08-28 Thread Jani Taskinen
On Thu, 28 Aug 2003, Dan Kalowsky wrote:

>On Thursday, August 28, 2003, at 06:08  AM, Jani Taskinen wrote:
>
>> On Wed, 27 Aug 2003, Dan Kalowsky wrote:
>>
>>> +   REGISTER_LONG_CONSTANT("SQL_BLOB", SQL_LONGVARBINARY, 
>>> CONST_PERSISTENT | CONST_CS);
>>
>> Isn't above supposed to be instead this:
>>
>> REGISTER_LONG_CONSTANT("SQL_BLOB", SQL_BLOB, CONST_PERSISTENT | 
>> CONST_CS);
>
>Don't mess with bits you don't understand.  To answer your question, no 
>it shouldn't.

Fine.

>> I fixed one typo already, maybe you should TEST before you commit 
>> things?
>
>Thank you.  If you had read the commit you would notice that this is 
>for some people to test via a snapshot.  If it worked, I planned to 
>leave it in, if not, out it comes.

But it's of no use if it can't be compiled. :)

--Jani

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-CVS] cvs: php-src /ext/odbc php_odbc.c php_odbc_includes.h

2003-08-28 Thread Dan Kalowsky
On Thursday, August 28, 2003, at 06:08  AM, Jani Taskinen wrote:

On Wed, 27 Aug 2003, Dan Kalowsky wrote:

+	REGISTER_LONG_CONSTANT("SQL_BLOB", SQL_LONGVARBINARY, 
CONST_PERSISTENT | CONST_CS);
Isn't above supposed to be instead this:

REGISTER_LONG_CONSTANT("SQL_BLOB", SQL_BLOB, CONST_PERSISTENT | 
CONST_CS);
Don't mess with bits you don't understand.  To answer your question, no 
it shouldn't.

I fixed one typo already, maybe you should TEST before you commit 
things?
Thank you.  If you had read the commit you would notice that this is 
for some people to test via a snapshot.  If it worked, I planned to 
leave it in, if not, out it comes.

>---<
Dan Kalowsky"I've learned to fake it,
http://www.deadmime.org/~dankand just smile along."
[EMAIL PROTECTED]- "Candy",
[EMAIL PROTECTED]  Iggy Pop
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP-CVS] cvs: php-src /ext/odbc php_odbc.c php_odbc_includes.h

2003-08-28 Thread Jani Taskinen
On Wed, 27 Aug 2003, Dan Kalowsky wrote:

>+  REGISTER_LONG_CONSTANT("SQL_BLOB", SQL_LONGVARBINARY, CONST_PERSISTENT | 
>CONST_CS);

Isn't above supposed to be instead this:

REGISTER_LONG_CONSTANT("SQL_BLOB", SQL_BLOB, CONST_PERSISTENT | CONST_CS);

I fixed one typo already, maybe you should TEST before you commit things?
  
--Jani


-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src /ext/odbc php_odbc.c php_odbc_includes.h

2003-08-27 Thread Dan Kalowsky
kalowskyWed Aug 27 14:21:52 2003 EDT

  Modified files:  
/php-src/ext/odbc   php_odbc.c php_odbc_includes.h 
  Log:
  Committing a patch for IBM DB2 BLOB support submitted by Clara Liu 
  ([EMAIL PROTECTED]).
  # I haven't had time to completely test this patch, a few users have stated
  # that it works well for them and a few others want to test with windows
  # builds, hence the submission.
  
  
Index: php-src/ext/odbc/php_odbc.c
diff -u php-src/ext/odbc/php_odbc.c:1.171 php-src/ext/odbc/php_odbc.c:1.172
--- php-src/ext/odbc/php_odbc.c:1.171   Thu Aug 14 10:36:38 2003
+++ php-src/ext/odbc/php_odbc.c Wed Aug 27 14:21:51 2003
@@ -20,7 +20,7 @@
+--+
 */
 
-/* $Id: php_odbc.c,v 1.171 2003/08/14 14:36:38 iliaa Exp $ */
+/* $Id: php_odbc.c,v 1.172 2003/08/27 18:21:51 kalowsky Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -460,6 +460,7 @@
REGISTER_LONG_CONSTANT("SQL_CHAR", SQL_CHAR, CONST_PERSISTENT | CONST_CS);
REGISTER_LONG_CONSTANT("SQL_VARCHAR", SQL_VARCHAR, CONST_PERSISTENT | 
CONST_CS);
REGISTER_LONG_CONSTANT("SQL_LONGVARCHAR", SQL_LONGVARCHAR, CONST_PERSISTENT | 
CONST_CS);
+   REGISTER_LONG_CONSTANT("SQL_BLOB", SQL_LONGVARBINARY, CONST_PERSISTENT | 
CONST_CS);
REGISTER_LONG_CONSTANT("SQL_DECIMAL", SQL_DECIMAL, CONST_PERSISTENT | 
CONST_CS);
REGISTER_LONG_CONSTANT("SQL_NUMERIC", SQL_NUMERIC, CONST_PERSISTENT | 
CONST_CS);
REGISTER_LONG_CONSTANT("SQL_BIT", SQL_BIT, CONST_PERSISTENT | CONST_CS);
@@ -653,6 +654,7 @@
case SQL_BINARY:
case SQL_VARBINARY:
case SQL_LONGVARBINARY:
+   case SQL_BLOB:
case SQL_LONGVARCHAR:
result->values[i].value = NULL;
break;
@@ -667,7 +669,7 @@
default:
rc = SQLColAttributes(result->stmt, (UWORD)(i+1), 
SQL_COLUMN_DISPLAY_SIZE,
NULL, 0, NULL, 
&displaysize);
-   displaysize = displaysize <= result->longreadlen ? 
displaysize : 
+   displaysize = displaysize <= result->longreadlen ? 
displaysize :
result->longreadlen;
result->values[i].value = (char *)emalloc(displaysize 
+ 1);
rc = SQLBindCol(result->stmt, (UWORD)(i+1), 
SQL_C_CHAR, result->values[i].value,
@@ -1417,7 +1419,19 @@
Z_STRVAL_P(tmp) = empty_string;
break;
}
-   if (result->binmode == 1) sql_c_type = SQL_C_BINARY;
+
+   if (result->binmode == 1) {
+   sql_c_type = SQL_C_BINARY;
+   }
+   case SQL_BLOB:
+   if (result->binmode <= 0) {
+   Z_STRVAL_P(tmp) = empty_string;
+   break;
+   }
+
+   if (result->binmode == 1) {
+   sql_c-type = SQL_C_BINARY;
+   }
case SQL_LONGVARCHAR:
if (IS_SQL_LONG(result->values[i].coltype) && 
result->longreadlen <= 0) {
Z_STRVAL_P(tmp) = empty_string;
@@ -1576,7 +1590,19 @@
Z_STRVAL_P(tmp) = empty_string;
break;
}
-   if (result->binmode == 1) sql_c_type = SQL_C_BINARY; 
+
+   if (result->binmode == 1) {
+   sql_c_type = SQL_C_BINARY; 
+   }
+   case SQL_BLOB:
+   if (result->binmode <= 0) {
+   Z_STRVAL_P(tmp) = empty_string;
+   break;
+   }
+
+   if (result->binmode == 1) {
+   sql_c_type = SQL_C_BINARY;
+   }
case SQL_LONGVARCHAR:
if (IS_SQL_LONG(result->values[i].coltype) && 
result->longreadlen <= 0) {
Z_STRVAL_P(tmp) = empty_string;
@@ -1794,8 +1820,15 @@
case SQL_BINARY:
case SQL_VARBINARY:
case SQL_LONGVARBINARY:
-   if (result->binmode <= 1) sql_c