Bug #18429 Updated: mssql_query() crashes on stored procedure using a cursor on query that contains

From: Date: Fri, 19 Jul 2002 16:10:57 +0000
Subject: Bug #18429 Updated: mssql_query() crashes on stored procedure using a cursor on query that contains
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-14640@lists.php.net to get a copy of this message
ID: 18429 Updated by: sniper@php.net Reported By: hujbanan@yahoo.com Status: Open Bug Type: MSSQL related Operating System: Win2000 -PHP Version: 4.2.2-dev +PHP Version: 4.3.0-dev New Comment: This is the snapshot for 4.3.0-dev: http://snaps.php.net/win32/php4-win32-latest.zip DO NOT REPLY unless you have _NEW_ information. DO NOT TOUCH the version anymore!!!! Also note that Apache2 is NOT stable for ANY use yet. Use Apache 1.3.26 which is proven to actually work (with PHP) Previous Comments: ------------------------------------------------------------------------ [2002-07-19 09:56:33] hujbanan@yahoo.com I'm very sorry, I have to find PHP version, which do that correctly, so I've tried all available versions. Latest versions too. In combobox on 'Bugs Report - New' are only 4.1.2, 4.2.0, 4.2.1 and 4CVS-2002-07-19 versions selectable. Because of both latest versions (stable 4.2.2-dev and 4.3.0-dev) was uploaded to server snaps.php.net 2002/07/19, so I choose version 4CVS-2002-07-19. I've tried new update of latest stable version (http://snaps.php.net/win32/php4-win32-STABLE-latest.zip), and it is still not work. May be it is caused with my bad configuration of Apache/PHP. Because of this little misunderstanding, I'm not sure, which version you are modifying, so I don't know, which one I need to download. Could you, please, send me, if it is corrected and which archive I should to download. Thank you for your patient. ------------------------------------------------------------------------ [2002-07-19 08:52:13] sniper@php.net please don't change the version to earlier if you already confirmed it to happen with the LATEST.. ------------------------------------------------------------------------ [2002-07-19 08:24:51] hujbanan@yahoo.com I have tried new update of stable version, but with the same result, it doesn't work. I send to you some example of code, which cause troubles, because I believe, it can help you to debug this problem. stored procedure: ALTER PROCEDURE sp_fetch_row @row int = 1 AS OPEN GLOBAL rowset FETCH ABSOLUTE @row FROM GLOBAL rowset CLOSE GLOBAL rowset DEALLOCATE GLOBAL rowset GO php: function fetch_row( $link, $query, $row = 1 ) { if ( mssql_query( "DECLARE rowset CURSOR GLOBAL SCROLL FOR $query", $link ) ) { if ( $result = mssql_query( "EXEC sp_fetch_row $row", $link ) ) { $row = mssql_fetch_assoc( $result ); mssql_free_result( $result ); } else mssql_query( 'DEALLOCATE GLOBAL rowset', $link ); } return $row; } $result = fetch_row( $link, 'SELECT id, name FROM store', 3 ); // OK $result = fetch_row( $link, 'SELECT id*2, name FROM store', 3 ); // fails ------------------------------------------------------------------------ [2002-07-19 04:55:10] sniper@php.net version update ------------------------------------------------------------------------ [2002-07-19 02:16:43] hujbanan@yahoo.com I use PHP statement mssql_query( "EXEC db_proc 1, 2, 3" ) {query B} to call stored procedure on MSSQL 2000 server, which produces output using cursor. Before it, I create global cursor using mssql_query( "DECLARE rowset CURSOR GLOBAL SCROLL FOR $query" ) {query A}. I need dynamically choose executed query, so I can't declare cursor in stored procedure. Statement {A} creates global cursor which is fetched and dropped in SP db_proc {B}. When I use as $query SQL command 'SELECT id FROM store', it works fine. But if I use something like 'SELECT id+1 AS col FROM store', PHP function mssql_query crashes. However, both of sequences of SQL queries run without problems in SQL Query Analyzer (SQL 2k). I found this problem on PHP version 4.2.0 for win32. I try latest version of PHP from http://snaps.php.net/win32/ (both, stable v4.2.2-dev and unstable v4.3.0-dev) but problem persists. I'm using Apache 1.3.20/PHP 4.2.0 on Win2k advanced server. I have step by step tryed Apache 2.0.39 with PHP v4.2.1, 4.2.2-dev and 4.3.0-dev, but with the same result. Can you tell me, what is wrong? Is it PHP bug or mistake in PHP/Apache configuration? I used default settings of PHP and Apache, PHP extensions: dba, mssql & gd. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=18429&edit=1

« previous php.bugs (#14640) next »