Muchisimas gracias, no se me hubiera ocurrido, yo estaba probando con la funcion 'localtima(time)' y no paraba de darle vueltas , estoy probando ahora lo del IO::Select. Ya contaré que tal me ha ido.
Gracias.
my $sth2 = $dbh1->prepare("SELECT orden FROM ordenes WHERE destino_orden='$trama{UID}'")
or die $dbh1->errstr;
$sth2->execute() or die $sth2->errstr;
my $orden = $sth2->fetchrow_array();
if($orden!='NULL')
print "$orden";
my $sth2=$dbh->prepare("IF EXISTS(SELECT orden FROM ordenes WHERE destino_orden='$trama{UID}')
SELECT orden FROM ordenes WHERE destino_orden='$trama{UID}'")
or die $dbh->errstr;
sth2->execute() or die $sth2->errstr;
my $orden= $sth2->fetchrow_array();
print "$orden";
y al introducir la cadena me cierra la conexion y me sale"my" variable $trama masks earlier declaration in same scope
Unmatched ( in regex; marked by <-- HERE in m/(HERE (?:#(0|2)(UID.{5}|FEC.{6}|VAL.|......sigue la lista de campos...|PTO.)+)/
my ($fuente, $trama) = $trama =~ /(?:#(0|2)($campos)+)/;
my $fuente;
($fuente, $trama) = $trama =~ /(?:#(0|2)($campos)+)/;
Esto puede ser algo complicado... pues estamos ya hablando de sincronización entre equipos. ¿Qué ocurre si pasan 15 segundos y no hay respuesta? ¿Qué pasa si en esos 15 segundos seguimos recibiendo tramas del/de otros camiones?enviarla, 'print', esperar a que responda el camion con 'cadenaok' (responde antes de 15 segundos) y entonces actualizar con UPDATE ack_orden=1.
fetchrow_array
- Código: Seleccionar todo
@ary = $sth->fetchrow_array;
An alternative to fetchrow_arrayref. Fetches the next row of data and returns it as a list containing the field values. Null fields are returned as undef values in the list.
If there are no more rows or if an error occurs, then fetchrow_array returns an empty list. You should check $sth->err afterwards (or use the RaiseError attribute) to discover if the empty list returned was due to an error.
If called in a scalar context for a statement handle that has more than one column, it is undefined whether the driver will return the value of the first column or the last. So don't do that. Also, in a scalar context, an undef is returned if there are no more rows or if an error occurred. That undef can't be distinguished from an undef returned because the first field value was NULL. For these reasons you should exercise some caution if you use fetchrow_array in a scalar context.
fetchrow_array
- Código: Seleccionar todo
@ary = $sth->fetchrow_array;
Una alternativa a fetchrow_arrayref. Recupera la siguiente fila de datos y los devuelve como una lista conteniendo los valores de los campos. Los campos nulos son devueltos como undef en la lista.
Si no hay más filas o si ocurre un error, entonces fetchrow_array devuelve una lista vacía. Debes comprobar después con $sth->err (o con el atributo RaiseError) si la lista vacía fue debida a un error.
Si es llamado en contexto escalar para una sentencia que tenga más de una columna, no está definido lo que el driver devolverá, si el valor de la primera o de la última columna. Así que no lo haga. También, en contexto escalar, se devuelve un undef si no hay más filas o si ocurre un error. Este undef no puede distinguirse del caso de que el primer campo sea NULL. Por estas razones debe tener alguna precaución si usa fetchrow_array en contexto escalar.
my $sth2=$dbh1->prepare("SELECT orden FROM ordenes WHERE destino_orden='trama{UID}' AND ack_orden = '0'")
or die $dbh1->errstr;
$sth2->execute() or die $sth2->errstr;
my @orden = $sth2->fetchrow_array();
if (@orden)
print " @orden ";
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados