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

Reply via email to