ID:               16742
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
-Status:           Analyzed
+Status:           Closed
 Bug Type:         ODBC related
 Operating System: win2000 sp2
 PHP Version:      4.2.0
 New Comment:

Closing... fix will be in 4.2.1 (due in a few days).

Derick


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

[2002-05-01 02:29:58] [EMAIL PROTECTED]

This bug seems to be fixed in the latest snapshots of 4.2 branch and
HEAD as of 2002-05-01. At least for me it works again.

Thanks a lot

Christoph

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

[2002-04-26 10:27:26] [EMAIL PROTECTED]

As far as the cursor is concerned, from the MS ODBC SDK:

SQLExtendedFetch Similar to SQLFetch but returns multiple rows using an
array for each column. The result set is forward-scrollable and can be
made backward-scrollable if the cursor is defined to be static, not
forward-only.

The code for the first two examples is correct (the php source and the
sample scripts).  I'm wondering if the ODBC v3.7 (in the latests MDACs
from MS) isn't mapping SQLFetchScroll to SQLExtendedFetch properly, or
if it's somewhere else.

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

[2002-04-26 07:40:32] [EMAIL PROTECTED]

For MyODBC towards MySQL this problem is due to incorrect cursor type.
I the function odbc_exec/odbc_prepare(), the cursor is set to
SQL_CURSOR_FORWARD_ONLY which makes it impossible for MyODBC to use
SQLFetchExtended().

To make this function work with MyODBC, change to SQL_CURSOR_STATIC on
line 1184 in php_odbc.c. To make this work with odbc_prepare() i guess
line 820 has to be changed as well.

/* $Id: php_odbc.c,v 1.120.2.1 2002/04/08 22:21:30 sniper Exp $ */

Marcus Karlsson
Testbolaget AB

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

[2002-04-24 08:59:41] [EMAIL PROTECTED]

ODBC communication also fail with OS: NT40 (and Apache)
 No error return!! (work with php 4.1.1)

Code:

<?php
$conn = odbc_connect($dsn, $uid, $pwd) or die( "Error DB connect" );

$sql="SELECT * FROM $dbname ORDER BY dateposted DESC";
if(($result = odbc_exec($conn, $sql))) {
        $bzm = 1;
        while(odbc_fetch_row($result, $bzm)) {
                echo odbc_result($result,"name")."<br>";
                                $bzm++;
        }
}
odbc_free_result($result);
?>

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

[2002-04-23 01:07:46] [EMAIL PROTECTED]

The following code works for the first sql statement however fails on
the odbc_fetch_row for the second when the second parmeter is set. This
works for php4.1.2 but fails on php4.2.0

ODBC connected to Access97 database, running Apache2
----------------------------------------------------
CODE
----------------------------------------------------
  $DB_TMS = odbc_connect("tms", "", "");
  
  $sql = "select * from users where name='Root' and pass='1111'";
  $res = odbc_exec($DB_TMS, $sql);
  if( odbc_fetch_row($res)) echo "Found Record <br>";
  else echo "No Record Found <br> ";    
  odbc_free_result($res);
      
  $sql = "select * from users where name='Root' and pass='1111'";
  $res = odbc_exec($DB_TMS, $sql);
  if( odbc_fetch_row($res, 1)) echo "Found Record <br>";
  else echo "No Record Found <br> ";  
  odbc_free_result($res);
      
  odbc_close_all( );

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


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

Reply via email to