Ver Mensaje Individual
  #2  
Antiguo 27-05-2005
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Reputación: 21
defcon1_es Va por buen camino
Cita:
Empezado por JoanKa
Pero ahora quiero que el CODI_CLI SE EJECUTE AUTOMATICAMENTE
Lo que quieres es que se le asigne un valor automáticamente, ¿no?

Cita:
Empezado por JoanKa
1.- Quiero que objeto txt_codigo se edite el CODI_CLI de la siguiente manera :
CLI0010001,
CLI0010002,
CLI0010003,
CLI0010004.......

Para esto me parece que tengo que tener 2 partes CLI + NUMERO, es decir la la palabra CLI fija y NUMERO autoincremental (quiero que sea apartir de 1000). Como lo podria hacer esto.
Prueba esto:
Código SQL [-]
CREATE TRIGGER INSERTAR_CODI FOR CLIENTE
ACTIVE BEFORE INSERT POSITION 0
AS
begin
/* if (new.codi_cli is null) then 
No hace falta que preguntes si tiene valor o no, 
porque quieres asignarle el valor automaticamente SIEMPRE.
*/ 
new.codi_cli = "CLI" || CAST(gen_id(codi_gener,1) AS VARCHAR(7));
end
Pruebalo, yo no he podido comprobar si funciona, te lo escribo "de cabeza".
Ten cuidado por si el resultado es mayor de 10 caracteres, que es la long. máxima que le has dado a ese campo.
Puede producirse el error "Aritmetic exception or numeric overflow"


Cita:
Empezado por JoanKa
2. Como se haria para relacionar el procedimiento almacenado y el trigger con delphi para que pueda registrar al cliente.
El trigger es automático, y como se activa antes de insertar el registro,
con hacer "DataSet.Insert" (y luego el Post) sería suficiente.

Cita:
Empezado por JoanKa
3. Como puedo poner el codigo en delphi para llamar al trigger.
DataSet.Insert o DataSet.Append
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...
Responder Con Cita