View Single Post
  #5  
Old 16/04/2004
guillotmarc's Avatar
guillotmarc guillotmarc is offline
Miembro
 
Join Date: May 2003
Location: Huelva
Posts: 2,638
Rep Power: 26
guillotmarc Va por buen camino
Hola.

Quote:
Originally Posted by 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.

Quote:
Originally Posted by 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).

Last edited by guillotmarc : 16/04/2004 at 12:47.
Reply With Quote