ID:               18941
 Comment by:       frosty dot z at freesbee dot fr
 Reported By:      mlambert at kodak dot com
 Status:           No Feedback
 Bug Type:         ODBC related
 Operating System: Win NT 4.0
 PHP Version:      4CVS-2002-08-16
 New Comment:

mlambert > "As originally reported in bug # 18629"...

You were probably talking about bug #18628.


Previous Comments:
------------------------------------------------------------------------

[2002-09-21 01:55:50] [EMAIL PROTECTED]

No feedback was provided. The bug is being suspended because
we assume that you are no longer experiencing the problem.
If this is not the case and you are able to provide the
information that was requested earlier, please do so and
change the status of the bug back to "Open". Thank you.



------------------------------------------------------------------------

[2002-08-21 01:43:23] [EMAIL PROTECTED]

Can you please try applying this patch and seeing if this solves the
problem for you?

Index: php_odbc.c
===================================================================
RCS file: /repository/php4/ext/odbc/php_odbc.c,v
retrieving revision 1.141
diff -u -u -r1.141 php_odbc.c
--- php_odbc.c  14 Aug 2002 20:40:48 -0000      1.141
+++ php_odbc.c  21 Aug 2002 05:40:21 -0000
@@ -2924,6 +2924,23 @@
                RETURN_FALSE;
        }
 
+       /* This hack is needed to access table information in Access
databases */
+       if (column_len == 0) {
+               column = NULL;
+       }
+
+       if (cat_len == 0) {
+               cat = NULL;
+       }
+
+       if (schema_len == 0) {
+               schema = NULL;
+       }
+
+       if (table_len == 0) {
+               table = NULL;
+       }
+
        rc = SQLColumns(result->stmt, 
                        cat, cat_len,
                        schema, schema_len,

------------------------------------------------------------------------

[2002-08-16 13:13:25] mlambert at kodak dot com

As originally reported in bug # 18629, odbc_columns returns SQL state
00000 error with Access database.

Using php snapshot 16-Aug-02 12:24 in command line mode.

$qid=odbc_columns($c,"D:\ekos\RXCoating","","Slots","");

I know from using iSQL Viewer that the column information can be
retrieved using ODBC and the MS Access driver. Turning on SQL tracing
shows that the problem lies with "" 
vs <empty string>. Empty strings are passed as pointer to (possibly) ""
whereas a null pointer appears to be  required.

 Extract from SQL log:
 iSQL-Viewer-2_1 49-b7 EXIT SQLColumnsW  with return code 0
 (SQL_SUCCESS)
        HSTMT       0BC25F40
        WCHAR *    0x0BC21828 [      -3] "D:\ekos\R"
        SWORD      -3
        WCHAR *   0x00000000 [      -3] <empty string>
        SWORD    -3
        WCHAR *  0x0BC22090 [      -3] "Slo"
        SWORD    -3
        WCHAR *  0x00000000 [      -3] <empty string>
        SWORD     -3

 php -f alt 97-73 EXIT SQLColumnsW with return code -1 (SQL_ERROR)
        HSTMT      00CE1A18
        WCHAR *   0x00CE1E20 [      -3] "D:\ekos\R"
        SWORD      -3
        WCHAR *   0x00CE15E0 [      -3] ""
        SWORD     -3
        WCHAR *  0x00CE1E58 [      -3] "Slo"
        SWORD    -3
        WCHAR * 0x00CE1E78 [      -3] ""
        SWORD   -3
The SQL log shows the same problem with odbc_specialcolumns.
odbc_statistics,odbc_foreignkeys, and odbc_primarykeys also give the
same SQL state 00000 errors. 
 Howerver odbc_tables works fine with ""  passed to SQLTablesW

------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=18941&edit=1

Reply via email to