Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Porque me sale cada rato un Warning "ibase_fetch_assoc()" al Guardar ???? (https://www.clubdelphi.com/foros/showthread.php?t=59769)

AGAG4 08-09-2008 17:43:14

Porque me sale cada rato un Warning "ibase_fetch_assoc()" al Guardar ????
 
Ya encontre la forma de actualizar registros en Firebird 1.5.5 con Delphi for PHP 2.0, pero cada rato que presiono el boton para Actualizar el registro me sale el mensaje:

Código:

Warning: ibase_fetch_assoc(): supplied argument is not a valid Firebird/InterBase result resource
in C:\Archivos de programa\CodeGear\Delphi for PHP\2.0\vcl\interbase.inc.php on line 550

De tal forma que me va llenando toda la pagina con esa leyenda cada vez de que presiono el boton de actualizar, aunque si me guarda los cambios del registro en firebird, les señalo el código que tengo dentro del boton:

Código PHP:

  $this->ibQryCliente->Close();
  
  
$this->ibQryCliente->Filter "";
  
  
$this->ibQryCliente->SQL    "UPDATE CLIENTES SET DIASCRED =  ".$this->edDiasCred->Text." WHERE NUMCLI = ".$this->edNumCli->Text."";

  
$this->ibQryCliente->Open(); 

Agradezco cualquier ayuda al respecto.

Julián 09-09-2008 01:41:21

Hola!

Yo no uso el delphi4php pero no parece muy difícil encontrar el error:
En primer lugar deberías averiguar cual de esas 4 lineas que has puesto te produce el error. Supongo que delphi4php tiene depurador.

Ademas, también deberías mirar la línea (550 de interbase.inc.php) que te sale en el mensaje de error, y comprobar si es que la función a la que hace referencia necesita algún argumento que no hayas puesto. O acaso estas usando una variable ya liberada.

Por último ten en cuanta que lo que tienes no es un error, es un warning, y a lo mejor hasta podría ser que fuese normal, para lo cual te recomiendo que revises la función error_reporting.

Un saludo!

AGAG4 09-09-2008 16:43:01

Cita:

Empezado por Julián (Mensaje 312642)
Hola!

Yo no uso el delphi4php pero no parece muy difícil encontrar el error:
En primer lugar deberías averiguar cual de esas 4 lineas que has puesto te produce el error. Supongo que delphi4php tiene depurador.

Ademas, también deberías mirar la línea (550 de interbase.inc.php) que te sale en el mensaje de error, y comprobar si es que la función a la que hace referencia necesita algún argumento que no hayas puesto. O acaso estas usando una variable ya liberada.

Por último ten en cuanta que lo que tienes no es un error, es un warning, y a lo mejor hasta podría ser que fuese normal, para lo cual te recomiendo que revises la función error_reporting.

Un saludo!

Efectivamente compañero, es un warning, disculpe dije la palabra "Error" Erroneamente :) , y en efecto, no me afecta en nada ese warning en cuanto a la modificación de registros, pero es muy enfadoso estar viendo esas lineas de warning en el internet explorer "Mancha" mucho la apariencia, ya quite linea por linea y sigue apareciendo, la verdad no se cual de las lineas manda a llamar esa función, y no sé en cual de las lineas me hace falta el parametro que supuestamente solicita con el warning...

:confused:

dec 09-09-2008 16:57:11

Hola,

Del "warning" no sé... pero, respecto de los errores que se muestran en el navegador, si no me equivoco, es una buena práctica ocultarlos, puesto que estos contienen información que usuarios "malintencionados" podrían. De hecho podrían "provocar errores" sólo por ver los mensajes de error y ver qué se encuentran. De modo que, personalmente, siempre utilizo cierta función del capo (Emilio) en mis proyectos:

Código PHP:

function SetErrorLevel(){
  if(
$_SERVER['SERVER_ADDR'] != '127.0.0.1'){
    
error_reporting(0);
    
ini_set('display_errors'0);
    
ini_set('error_reporting'0);
  }else{
    
error_reporting(E_ALL);
    
ini_set('display_errors'1);
    
ini_set('error_reporting'E_ALL);
  }
  return 
true;


Esa función asegura que, mientras trabajamos "en local" con un proyecto, PHP muestre todos las "notices", "warning" y errores que encuentre. Pero, cuando el proyecto esté "en el servidor", la misma función impedirá que PHP muestre ningún error de PHP en absoluto. Claro está que otra cosa son los mensajes que nosotros mostremos al usuario.

AGAG4 09-09-2008 19:41:15

Gracias DEC, voy a probar tu sugerencia, también lo solucione usando los componentes DataAccess usando la propiedad DriverName = borland_ibase del DataBase, y usando el Query ya con estos no me sale el warning, pero voy a probar el código que me señalas, gracias....

Anteriormente usaba los IBX que ya vienen con el Delphi for PHP.

dec 09-09-2008 19:43:33

Hola,

De todas formas, quiero recalcar que la función anterior sólo cumple una función de cara a los usuarios, es decir, que uno debería prestar atención a los "warnings" y demás, para ver si es menester hacer algo al respecto. Es a los usuarios a los que hay que procurar no mostrar este tipo de mensajes de error, en primer lugar, porque pueden contener información "sensible", y, en segundo lugar, poque queda feo... ;)

Pero nosotros, mientras llevamos a cabo el proyecto, debemos procurar ver todos los errores posibles, para tratar de solucionarlos.

AGAG4 09-09-2008 23:40:25

Enterado Compañero.... Tan claro como el agua :)


La franja horaria es GMT +2. Ahora son las 08:39:31.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi