felipe                                   Thu, 17 Mar 2011 11:59:54 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=309343

Log:
- Fixed bug #54167 (PDO_DBLIB returns null on SQLUNIQUE field)
  patch by: mjh at hodginsmedia dot com

Bug: http://bugs.php.net/54167 (Feedback) PDO_DBLIB returns null on SQLUNIQUE 
field
      
Changed paths:
    U   php/php-src/branches/PHP_5_3/ext/pdo_dblib/dblib_stmt.c

Modified: php/php-src/branches/PHP_5_3/ext/pdo_dblib/dblib_stmt.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/pdo_dblib/dblib_stmt.c     2011-03-17 
11:49:18 UTC (rev 309342)
+++ php/php-src/branches/PHP_5_3/ext/pdo_dblib/dblib_stmt.c     2011-03-17 
11:59:54 UTC (rev 309343)
@@ -25,6 +25,7 @@

 #include "php.h"
 #include "php_ini.h"
+#include "ext/standard/php_string.h"
 #include "ext/standard/info.h"
 #include "pdo/php_pdo.h"
 #include "pdo/php_pdo_driver.h"
@@ -173,6 +174,23 @@
                                                val->len = spprintf(&val->data, 
0, "%.4f", money_value);
                                                }
                                                break;
+#ifdef SQLUNIQUE
+                                       case SQLUNIQUE: {
+#else
+                                       case 36: { /* FreeTDS hack, also used 
by ext/mssql */
+#endif
+                                               val->len = 36+1;
+                                               val->data = emalloc(val->len + 
1);
+
+                                               /* uniqueidentifier is a 
16-byte binary number, convert to 32 char hex string */
+#ifdef SQLUNIQUE
+                                               val->len = dbconvert(NULL, 
SQLUNIQUE, dbdata(H->link, i+1), dbdatlen(H->link, i+1), SQLCHAR, val->data, 
val->len);
+#else
+                                               val->len = dbconvert(NULL, 36, 
dbdata(H->link, i+1), dbdatlen(H->link, i+1), SQLCHAR, val->data, val->len);
+#endif
+                                               php_strtoupper(val->data, 
val->len);
+                                               break;
+                                               }
                                        default:
                                                if 
(dbwillconvert(S->cols[i].coltype, SQLCHAR)) {
                                                        val->len = 32 + (2 * 
dbdatlen(H->link, i+1));

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

Reply via email to