Edit report at http://bugs.php.net/bug.php?id=51877&edit=1
ID: 51877 User updated by: diegoturriaga at yahoo dot com dot ar Reported by: diegoturriaga at yahoo dot com dot ar Summary: php5ts.dll crash and reset Apache Status: Open Type: Bug Package: Reproducible crash Operating System: Windows XP / 2003 PHP Version: 5.3.2 New Comment: If you have an xls file (dbf format) you can save it as DBASE IV file. (without a CDX index associated but functional) Previous Comments: ------------------------------------------------------------------------ [2010-05-21 20:33:16] paj...@php.net If the odbc driver corrupts vfp index, then you should report a bug to Microsoft. I'm not sure we can fix your issue easily, so pls don't hold your breath :) ------------------------------------------------------------------------ [2010-05-21 20:25:30] diegoturriaga at yahoo dot com dot ar That speed! ODBC is slower, the driver is older and, especially, corrupts the index file (cdx) on deletes ------------------------------------------------------------------------ [2010-05-21 20:21:33] diegoturriaga at yahoo dot com dot ar Ups! Please replace $this->recordset by $recordset (copy/paste error;) ------------------------------------------------------------------------ [2010-05-21 20:17:42] paj...@php.net Well, not sure I can even debug that as I see no way to have the VFP data. But why do you use COM and ADODB instead of ODBC? ODBC will be way more stable than ADODB through COM. ------------------------------------------------------------------------ [2010-05-21 20:14:33] diegoturriaga at yahoo dot com dot ar <?php $charPage = CP_UTF8; $stringDeConexion = 'Provider=VFPOLEDB.1;Data Source="\\server\data";Mode=ReadWrite|Share Deny None;Password="";Collating Sequence=SPANISH;DELETED=False'; $cantRegAfectados = -1; $consulta = 'SELECT * FROM hugedbf1 x INNER JOIN hugedbf2 y ON x.Id=y.xId'; $conexion = null; $rs = null; $comando = null; # intenta crear el objeto y conectarse try { $conexion = new COM("ADODB.Connection", null, $charPage); $conexion->ConnectionTimeout = 1200; $conexion->CommandTimeout = 2400; $conexion->Open($stringDeConexion); } catch (Exception $e) { echo "Error creando conexion OLEDB.<br/><br/>". $e->getMessage(); exit(1); } # intenta crear un comando try { $comando = new COM("ADODB.Command"); $comando->CommandType = 1; //adCmdText $comando->ActiveConnection = $conexion; $comando->CommandText = $consulta; } catch (Exception $e) { echo "Error creando el comando OLEDB.<br/><br/>". $e->getMessage(); exit(1); } # intenta ejecutar el comando SQL try { $rs = $comando->Execute($cantRegAfectados); } catch (Exception $e) { echo "Error ejecutando comando OLEDB.<br/><br/>". $e->getMessage(); exit(1); } # pasa los datos al recordset y libera los recursos $this->recordset = array(); $j=0; if ($rs->State!=0) { while (!$rs->EOF) { for ($i=0; $i<$rs->Fields()->Count; $i++) { $this->recordset[$j][$rs[$i]->Name] = $rs[$i]->Value; } $rs->MoveNext(); $j++; } $rs->Close(); } $conexion->Close(); $rs = null; $conexion = null; echo "It's all right!"; return 0; ?> PD: You will need hugedbf1.dbf and hugedbf2.dbf shared on \\server\data and the user running apache service need permission from I/O there. Also you have to have installed the VFP OLEDB drivers. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/bug.php?id=51877 -- Edit this bug report at http://bugs.php.net/bug.php?id=51877&edit=1