[PHP-CVS] cvs: php-src /ext/odbc php_odbc.c php_odbc_includes.h
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
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
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
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
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
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
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
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
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