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 Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 27-10-2006
lbuelvas lbuelvas is offline
Miembro
 
Registrado: may 2003
Ubicación: Colombia
Posts: 378
Poder: 24
lbuelvas Va por buen camino
Hola foro,

bueno, cuando se necesita conocer el el valor de una llave generada por el motor de base de datos por medio de un generador valga la redundancia (ahora se les dice secuencia a partir de la version 2 de firebrid), deberias utilizar la propiedad GeneratorField de los TIBDataset.

Esta propiedad te permite indicarle al Dataset desde cual generador de la base de datos va a traer el nuevo valor para identificar en tu caso a los estudiantes.

Existen 3 formas de generar el valor:

1. OnNewrecord. Esta opción incrementa el generador en 1 y lo trae hacia tu dataset cuando hagas una operacion Insert. La desventaja es que si das una operacion Cancel, pierdes el uso del numero y te quedan 'huecos' en tu secuencia.

2. On Post: Esta opción incrementa el generador en 1 pero solamente cuando cuando haces la grabacion del registro (operacion post). Es la que utilizo en situaciones como la que tu planteas.

3. On Server: llevo mas de 6 años trabajando con los IBX y no se la verdad que es lo que hace, mis disculpas.

Ese es el mecanismo de tener 'en vivo' el identificador dentro de la aplicacion.

De otro lado tambien coloco un trigger tipo Before Insert por si se hace ingreso de informacion por otro via diferente al formulario, quedaria mas o menos asi:

Código SQL [-]
CREATE GENERATOR GEN_ALUMNO;

SET TERM ^ ;


CREATE TRIGGER ALUMNO_BI0 FOR ALUMNO
ACTIVE BEFORE INSERT POSITION 0
AS
begin
  /* Colocar el identificador */
  if (new.codigo is null) then
    new.codigo = gen_id(gen_alumno, 1);
end
^

SET TERM ; ^

Si utilizas la propiedad GeneratorField es el aplicativo el que se encarga de construir el identificador y no el trigger.

Muchos exitos,

Luis F. Buelvas T.
__________________
Luis Fernando Buelvas T.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Me da muchos fallos el quickreport 4.0 escullar Impresión 0 03-05-2006 12:14:31
Relacion Muhcos a muchos Sito Conexión con bases de datos 1 11-04-2006 13:25:29
UPDATE en una relacion 1 a Muchos... JorgeBec SQL 4 19-11-2004 20:16:37
... muchos requisitos ... Jure Humor 0 02-04-2004 16:22:18
Consulta SQl, relacion 1 a muchos Walter SQL 3 15-07-2003 03:13:28


La franja horaria es GMT +2. Ahora son las 22:41:56.


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