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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-05-2007
Avatar de Adrian Murua
Adrian Murua Adrian Murua is offline
Miembro
 
Registrado: oct 2003
Ubicación: Tucuman - Argentina
Posts: 45
Poder: 0
Adrian Murua Va por buen camino
Wink

Muchas gracias por contestar.

El trigger esta creado en el servidor, pero tuve que llenar el campo Generatorfield con .

Código Delphi [-]
Generator : MARCAS_MARCAID_GEN
field : MARCA_ID
INCREMENT BY : 1
EVENT : ON NEW RECORD;

supongo que con este codigo estaria creando un trigger en los IBX, pero me vi obligado pues cuando queria insertar el registro salia un error indicandome que el campo MARCA_ID no podia ser nulo.

Ahora bien, cual seria la mejor opcion: Quitar el trigger del servidor, dejando el del IBX, o al reves, pero en este caso como soluciono el mensaje de error (del valor nulo en MARCA_ID); Hay alguna forma mejor de realizar esto ?.

desde ya muchas gracias.
__________________
Adrián Murúa.
Responder Con Cita
  #2  
Antiguo 02-05-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
el cuerpo del trigger debería ser así:
Código SQL [-]
  if new.marca_id is null then
     new.marca_id = gen_id(marcas_marca_id, 1);
El trigger saltará, pero dado que IBX ha llamado internamente a este trigger, el campo marca_id ya tiene un valor, y el trigger no hace nada.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 03-05-2007
Avatar de Adrian Murua
Adrian Murua Adrian Murua is offline
Miembro
 
Registrado: oct 2003
Ubicación: Tucuman - Argentina
Posts: 45
Poder: 0
Adrian Murua Va por buen camino
Question

Gracias por responder...

El trigger esta creado de la forma que me indicas pues lo he creado con la ayuda del software EMS SQL Manager para IB /fB, te transcribo la declaracion que hace el EMS :

Código SQL [-]
SET TERM ^ ;

CREATE TRIGGER BI_MARCAS_MARCA_ID FOR MARCAS
ACTIVE BEFORE INSERT
POSITION 0
AS
BEGIN
  IF (new.MARCA_ID is null) THEN
      new.MARCA_ID = GEN_ID(MARCAS_MARCA_ID_GEN, 1);
END^

SET TERM ; ^

que puede estar sucediendo ??
__________________
Adrián Murúa.
Responder Con Cita
  #4  
Antiguo 03-05-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Hasta el momento no me ha sucedido nada parecido.

En mi aplicación tengo exactamente lo mismo que tú (salvo que uso los componentes MDOLIB, que provienen de los IBX). No sabría decirte por qué falla, mis incrementos son consecutivos.

Supongo que deshabilitando el Trigger en el servidor, todo funcionará bien, pero si en algún momento usas un sql como este, fallará la inserción:
Código SQL [-]
insert into marcas (marca_id) values (null)

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
Respuesta


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
InserciÓn De Registro Con Maestro-detalle perillan Conexión con bases de datos 5 23-10-2005 11:15:23
mostrar la suma de un campo ebeltete SQL 2 04-09-2004 01:43:48
Suma de un campo silviodp Conexión con bases de datos 13 11-06-2004 16:51:23
Inserción de valores de tipo date Isaac MySQL 6 03-03-2004 02:02:47
suma de un campo sql noe SQL 16 19-01-2004 18:52:54


La franja horaria es GMT +2. Ahora son las 22:25:20.


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