Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-05-2005
JoanKa JoanKa is offline
Miembro
 
Registrado: ene 2005
Posts: 92
Poder: 20
JoanKa Va por buen camino
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
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 07:38:21.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi