Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-05-2011
auribe auribe is offline
Miembro
 
Registrado: may 2003
Posts: 28
Poder: 0
auribe Va por buen camino
problema con trigger after insert

Hola a todos. Si alguien puede ayudarme con el siguiente problema.
Tengo una aplicacion con una base de datos firebird 2.1 conectada a Delphi 5 atraves del BDE. La aplicacion hasta ahora funciona bien, el caso es que por asunto de rapidez quiero elimnar el BDE y conectarme directamente a la base de datos.

Empece a cambiar los componentes y estoy utilizando los IB que estan en el tab de interbase y no se porque razon los trigger que generan la clave no lo estan haciendo con estos componentes y me dan un error tal como EL CAMPO CTR_TICKET MUST HAVE A VALUE.

El valor de de este campo es primary key y lo genera un trigger BEFORE INSERT de la siguiente manera.

Código SQL [-]
CREATE OR ALTER TRIGGER ANTES_INSERT_TICKET FOR MAESTRO_TICKETS
ACTIVE BEFORE INSERT POSITION 0.
BEGIN
   Select ctr_ticket from secuencia into ctr_ticket 
        if (ctr_ticket is null) then ctr_ticket=0;
        NEW.CTR_TICKET=CTR_TICKET+1;
END;

Nota: Cuando inserto el registro por IB Expert y tambien conectandome a la base de datos por BDE el trigger funciona bien, mas conectandome directo con los componentes IB da el error antes mencionado.

Necesito ayuda...

Última edición por Casimiro Notevi fecha: 17-05-2011 a las 22:32:12.
Responder Con Cita
  #2  
Antiguo 18-05-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola auribe.

Si estas usando un TIBDataSet o un TIBQuery tenés que especificar el nombre del generador en la propiedad GeneratorField.
Desde el ObjectInspector hacé clic sobre los puntos suspensivos (...) y te abre un cuadro donde ingresas: Nombre del generator, campo al que se se aplica y el evento en que deseas que se aplique.

Lo mismo pero por código:
Código Delphi [-]
  IBDataSet.GeneratorField.Generator:= 'G_CLIENTES';
  IBDataSet.GeneratorField.Field:= 'ID_CLIENTES';
  IBDataSet.GeneratorField.ApplyEvent:= gamOnPost;
  IBDataSet.GeneratorField.IncrementBy:= 1;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 18-05-2011 a las 02:33:31.
Responder Con Cita
  #3  
Antiguo 18-05-2011
auribe auribe is offline
Miembro
 
Registrado: may 2003
Posts: 28
Poder: 0
auribe Va por buen camino
Gracias por responden. Entiendo que la forma que lo haces le estas dejando la tarea a delphi para que realice esta funcion y en mi opinion debe ser tarea de la base de datos.

Existe otra opinion al respecto?

Gracias..
Responder Con Cita
Respuesta



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
problema trigger no se que hago mal elistraus PostgreSQL 2 14-12-2010 16:49:19
problema con TRIGGER Manuel Firebird e Interbase 7 13-09-2006 22:19:56
Trigger Before (Insert,update,delete)? estebanx MS SQL Server 2 25-05-2006 15:58:19
Problema con Insert joanajj Conexión con bases de datos 1 01-05-2006 08:11:40
problema de trigger ronson Firebird e Interbase 3 01-03-2004 18:16:57


La franja horaria es GMT +2. Ahora son las 16:04:10.


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