Ver Mensaje Individual
  #5  
Antiguo 16-04-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Reputación: 24
guillotmarc Va por buen camino
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
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).

Última edición por guillotmarc fecha: 16-04-2004 a las 12:47:51.
Responder Con Cita