Foros del Web » Programando para Internet » PHP »

maxim execution time exeded

Estas en el tema de maxim execution time exeded en el foro de PHP en Foros del Web. Alguien sabe a que se debe este error me aparece cuando intento extraer la clave de una base de datos despues de un insert, lo ...
  #1 (permalink)  
Antiguo 23/06/2006, 13:25
 
Fecha de Ingreso: mayo-2006
Mensajes: 13
Antigüedad: 17 años, 11 meses
Puntos: 0
Pregunta maxim execution time exeded

Alguien sabe a que se debe este error me aparece cuando intento extraer la clave de una base de datos despues de un insert, lo que debe extraer es una cve asignada automaticamente dentro de la misma tabla
  #2 (permalink)  
Antiguo 23/06/2006, 13:31
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Y como estas haciendo ese proceso? Poné el código así podemos ver como lo haces...
PD: Lo pregunto por que es un proceso que no debe consumir absolutamente nada.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #3 (permalink)  
Antiguo 23/06/2006, 13:54
 
Fecha de Ingreso: mayo-2006
Mensajes: 13
Antigüedad: 17 años, 11 meses
Puntos: 0
Cita:
Iniciado por nicolaspar
Y como estas haciendo ese proceso? Poné el código así podemos ver como lo haces...
PD: Lo pregunto por que es un proceso que no debe consumir absolutamente nada.
//llamada a funcion insertar en maestro

inserta_maestro($dbh2,$num_requisicion,$nuevafecha ,$adscripcion);

//llamada a funcion extrae clave

$cve_requisicion=extrae_cve($dbh2, $num_requisicion);

//llamada a funcion inserta detalle

inserta_detalle($dbh2,$cve_requisicion,partida1,$d escripcion1,$cantidad1,$unidad1);
inserta_detalle($dbh2,$cve_requisicion,partida2,$d escripcion2,$cantidad2,$unidad2);

//funcion Inserta maestro

function inserta_maestro($dbh,$i_nreq, $i_fecha, $i_adscripcion){
$sql = "INSERT into BS_REQUISICION (num_req,fecha_elab, cve_area) values(:val1, :val2, :val3)";
$stmt = OCIParse($dbh, $sql);
if (!$stmt) {
require("inserta2.htm");
}

else {
oci_bind_by_name($stmt, ':val1', $i_nreq);
oci_bind_by_name($stmt, ':val2', $i_fecha);
oci_bind_by_name($stmt, ':val3', $i_adscripcion);

OCIExecute($stmt);
}
}

//funcion inserta detalle

function inserta_detalle($dbh1,$v2_1, $v2_2, $v2_3,$v2_4,$v2_5){
$sql2 = 'INSERT into BS_REQ_DET (CVE_REQ, NUM_PARTIDA, DESCRIPCION, CANTIDAD, UNIDAD)values(:val2_1, :val2_2, :val2_3,:val2_4,:val2_5)';
$stmt2 = OCIParse($dbh1, $sql2);
if (!$stmt2) {
require ("inserta2.htm");
}

else {
oci_bind_by_name($stmt2, ':val2_1', $v2_1);
oci_bind_by_name($stmt2, ':val2_2', $v2_2);
oci_bind_by_name($stmt2, ':val2_3', $v2_3);
oci_bind_by_name($stmt2, ':val2_4', $v2_4);
oci_bind_by_name($stmt2, ':val2_5', $v2_5);
OCIExecute($stmt2);
}
}


el error es marcado en la siguiente función en oi execute

//funcion extrae clave

function extrae_cve($dbh3,$n_reqs){
while($valor==NULL){
$sql3 = 'SELECT CVE_REQ FROM BS_REQUISICION WHERE NUM_REQ=:N_REQ';
$stmt3 = OCIParse($dbh3, $sql3);
oci_bind_by_name($stmt3, ':N_REQ', $n_reqs);
OCIExecute($stmt3);

while ($row = oci_fetch_array ($stmt3, OCI_NUM)) {
$valor=$row[0];
}
}
return $valor;
}
  #4 (permalink)  
Antiguo 23/06/2006, 14:34
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Es un código muy cerrado y confuso, tendrías que debuguear la classe oci....que espero estes entendiendo.
Te comento por si te ayuda, no si si lo sabes, para sacar un id insertado en mysql haces:
Código PHP:
<?php
mysql_query
("Insert into ...");
$id mysql_insert_id() ; # <<-- Esto te dará el último id insertado
?>
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #5 (permalink)  
Antiguo 23/06/2006, 14:47
 
Fecha de Ingreso: mayo-2006
Mensajes: 13
Antigüedad: 17 años, 11 meses
Puntos: 0
el problema es que el id que requiero recuperar es uno que es asignado automaticamente por el triger despues de haber hecho el insert en la tabla maestro

si este me regresa un nulo no puede ser insertado el registro en la tabla detalle y es lo que me obligo a poner el while externo en la funcion extrae_cve
sin ese ciclo la aplicacion no marca error en algunos equipos pero en otros tantos manda un error de oracle en el que dice que no se puede insertar un "null" en cierto campo de la tabla
  #6 (permalink)  
Antiguo 23/06/2006, 14:54
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
No llego a comprender bien tu problema, aparte que hace mil que no uso oci_xxx. Fijate en php.net si tenes alguna función que te simplifique las cosas.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:15.