FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Trigger, generador y SP relacionarlo con Delphi
Ante todo gracias por la atencion prestada.
Bueno les cuento que recien estoy empezando con esto de Firebird, es decir los triggers, SP y generadores y soy novato en esto y tengo algunos problemas Tengo la siguiente tabla: CREATE TABLE CLIENTE ( CODI_CLI VARCHAR(10) NOT NULL, NOMB_CLI VARCHAR(30), ALTA_CLI DATE, OBSE_CLI BLOB SUB_TYPE 2 SEGMENT SIZE 8192, PAGO_CLI FLOAT ); asi como este Procedimiento almacenado CREATE PROCEDURE INSERTAR_CLIENTE ( COD VARCHAR(10), NOM VARCHAR(30), ALT DATE, OBS BLOB SUB_TYPE 1 SEGMENT SIZE 80, PAG FLOAT) AS begin INSERT INTO Cliente (CODI_CLI, NOMB_CLI, ALTA_CLI,PAGO_CLI, OBSE_CLI) values (:COD, :NOM, :ALT, :PAG, :OBS); end y en Delphi hago lo siguiente: with IBStoredProc1 do begin Params[0].AsString := txt_codigo.Text; Params[1].AsString := txt_nombre.Text; Params[2].AsDate := StrToDate(txt_fecha.Text); Params[3].AsMemo := txt_observaciones.Text; Params[4].AsFloat :=StrToFloat(txt_pago.Text); ExecProc; end; Lo que hago con esto es registrar a un cliente y me lo hace correctamente hasta aca no tengo problemas todo OK. Pero ahora quiero que el CODI_CLI SE EJECUTE AUTOMATICAMENTE, para eso en firebird e creado un generador y un trigger. Es decir. CREATE GENERATOR CODI_GENER; SET GENERATOR CODI_GENER TO 0; CREATE TRIGGER INSERTAR_CODI FOR CLIENTE ACTIVE BEFORE INSERT POSITION 0 AS begin if (new.codi_cli is null) then new.codi_cli=gen_id(codi_gener,1); end Ahora mis preguntas son las siguientes: 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. 2. Como se haria para relacionar el procedimiento almacenado y el trigger con delphi para que pueda registrar al cliente. Viendo por alli informacion tengo que eliminar la linea siguiente Params[0].AsString := txt_codigo.Text; ya que el trigger me lo haria automaticamente. 3. Como puedo poner el codigo en delphi para llamar al trigger. Gracias y Saludos a todos |
|
|
|