Ok muchisimas gracias, ahora si me distingue bien las cadenas.. o eso creo. Ahora el problema es otro, no se si es derivado de los cambios que hemos hecho. supongo que debe estar en la parte de código de insertar las ordenes en la tabla ordenes:
Using perl Syntax Highlighting
if (($fuente, $trama) = $linea =~/^#(1|2)(.+)$/)
{
if ($trama =~/\
@/)
{
##print "Fuente:$fuente, $trama\n";
while ($trama =~/($campos2)/g
)
{
my ($campo, $valor) = unpack("A3 A*", $1);
##print "\t$campo\t$valor\n";
if ($campo eq 'TIE') { $valor = join(':', $valor =~ /(..)/g) }
$trama{$campo} = $valor;
}
my %campos2_bd = (
UID
=> 'origen_orden', FEC
=> 'fecha_recepcion', TIE
=> 'hora_recepcion',
'@OD' => 'destino_orden', '@OT' => 'tipo_orden', '@OD' => 'orden', '@OP' => 'prioridad',
);
my $sql_or ='INSERT INTO ordenes SET ';
$sql_or .= join( ', ',
map { "$campos2_bd{$_} = \'$trama{$_}\'" }
grep { defined $campos2_bd{$_} }
keys %trama
);
$sql_or .= ';';
##print " la cadena sql_or tiene: $sql_or\n";
my $filas = $dbh1->do($sql_or)
or die $dbh1->errstr;
print "\$INFOK*\r\n";
}
elseColoreado en 0.003 segundos, usando
GeSHi 1.0.8.4
Y la insercion que me hace en la tabla es esta:
- Código: Seleccionar todo
| id_orden | timestamp | fecha_envio | hora_envio | origen_orden | destino_orden | tipo_orden | orden | prioridad | ack_orden | fecha_recepcion | hora_recepcion |
+----------+---------------------+-------------+------------+--------------+---------------+------------+-------+-----------+-----------+-----------------+----------------+
| 1 | 2006-10-09 09:07:49 | 2005-01-01 | | SP103 | | ty0 | SP105 | 2 | 1 | 2006-10-05 | 12:30:00 |
| 2 | 2006-10-09 09:07:49 | 2005-01-01 | | SP105 | | tyr | SP105 | 5 | 1 | 2006-10-06 | 09:00:00 |
| 3 | 2006-10-09 09:07:49 | 2005-01-01 | | SP103 | | ty0 | SP105 | 2 | 1 | 2006-10-09 | 09:00:00 |
| 4 | 2006-10-09 12:23:35 | 2005-01-01 | | SF272 | | MEN | SF272 | 0 | 0 | 2006-10-09 | 12:22:05 |
+----------+---------------------+-------------+------------+--------------+---------------+------------+-------+-----------+-----------+-----------------+----------------+
No se si se ve muy claro pero bueno lo explico aqui. Lo que es la 'orden' campo '@OR' no lo pilla y en su lugar inserta lo que sería 'destino_orden', y este campo lo deja vacío. ¿Alguna idea para resolver esto?
Ah y en cuanto a los errores, no tienes porque desculparte, me estas ayudando un montón y te lo agradezco.