Hola.
Cita:
Empezado por Giniromero
Pero el recibo tiene letras y numeros, ¿es eso un problema?
|
En el lenguaje de procedimientos almacenados y triggers, también hay funciones como el IntToStr (la función CAST), y el Copy (la función SUBSTRING). Por lo que se puede generar el nº igual que lo harias en Delphi.
Cita:
Empezado por Giniromero
La verdad que te lo agradecería, por que hasta hora sólo los he tenido que usar para dar valor a los campos autoincrementales.
|
Es muy parecido parecido. También lo debes poner en el Evento
Before Insert para que se calcule antes de guardar el registro. Lo único que cambia es el campo que modificas, y que el calculo de su valor es más complicado.
Te paso un trozo de código en el que calculo un nº de linea de Pedio :
select max(LINEA) from PED_LINEAS where NUM_PED = new.NUM_PED into :V_LINEA;
if (:V_LINEA is null) then V_LINEA = 1;
V_NUMERO = cast(new.NUM_PED as varchar(10));
V_NUMERO = V_NUMERO || '-';
V_NUMERO = V_NUMERO || cast(V_LINEA as varchar(10));
new.LINEA = V_LINEA;
new.NUMERO = V_NUMERO;
Nota : V_LINEA y V_NUMERO són variables. Este código va a numerar las lineas del Pedido 114, como 114-1, 114-2, etc. ... Dos usuarios pueden estar entrando lineas en ese Pedido simultaneamente, puesto que las posiblidades de repetir un nº són mínimas.
Saludos