Club Delphi  
    Paypal   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
  #14  
Antiguo 10-09-2003
buitrago buitrago is offline
Miembro
 
Registrado: sep 2003
Posts: 156
Poder: 23
buitrago Va por buen camino
Hey....!!!!!!!

Esto es lo que yo hago.....y me funcion perfecto. Si es para el autoincremental.

Bien ahi va:

Creo mi Generator, nombrarlo Mi_Generador.
Creo un Procedure Almacenado que se nombrará MI_Procedure_Generador
Este es su código

Create procedure MI_Procedure_Generador
returns (NUEVO integer)
As
Begin
NUEVO = GEN_ID(MI_Procedure_Generador,1);
SUSPEND
END

Y claro, tengo una tabla que le nombraremos MI_TABLA con un campo de llame primerria que le nombraremos MI_CODIGO

Voy bien?

En Delphi ahora:

Tengo un IBTable con sus campos creados.
Les creo todos sus TFields pero atención!!!!!!!, al Field del Código (MI_TABLAMI_CODIGO) cambiale la propieda required y colocala en False.

Creas un TIBStoredProc que apunte a el Procedimiento de Interbase o FireBird. A este TIBStoredProc ponle asociado otro TIBTransaction que al de la Tabla.
Además, sácale su Parametro a través de la propiedad Params
Debe decirte que es de tipo OutPut y que ademas es Integer

Ahora en el evento OnBeforePost de la Tabla, al final, despues que has visto todos los chequeos que puedan hacer explotar la grabación, esccribe esto:

if MI_TABLA.State in [dsInsert] then Begin
Aqui pones la Transaccion del Procedimiento en StartTransaction;
Le das Prepare;
desues ExecProc;
Le das Commit a la Transaccion
y ahora dices :
MI_TABLAMI_CODIGO.Value = ParamByName('NUEVO').AsInteger;
End; // del begin

Espero que sirva, esto lo uso mucho y pone casi la probabilidad que se ejecute el Generador y no se grabe a 0, ay que como ven es hecho en el OnBeforePost pero justo antes de darle el mando a Interbase.

Si amarraste todo bien, viva el consecutivo!!!!!!!!!!!!!!!!!!!

espero que sirva de ayuda.

Fernando Buitrago

Nota: Tengo los dedos cansaos', jejejejejej
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 05:05:24.


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