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 26-07-2005
Avatar de el_barto
el_barto el_barto is offline
Miembro
 
Registrado: may 2005
Ubicación: Bogota Colombia
Posts: 533
Poder: 20
el_barto Va por buen camino
restriccion al momento de hacer insert

Buenso dias foro tengo una tabla que llamo componentes en donde tengo los siguientes campos:

nombre_comp, precio_comp, flag; flag solo puede tomar valores 1 ó 0 pero necesito que los registros que tengan en el campo flag el numero 1, se guarden en la tabla producto despues de que oprima un boton.

como se puede hacer esta inserccion???, de antemano gracias por sus opiniones respuestas declaraciones o similares
__________________
Una forma de alcanzar tus metas es ayudando a otros a alcanzar las suyas
Responder Con Cita
  #2  
Antiguo 26-07-2005
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Podrías usar un trigger AfterInsert y/o AfterUpdate tal que:

Código SQL [-]
if New.Flag = 1 then
  insert into productos (campo1, campo2, .., campon)
    values (New.nombre_comp, New.precio_comp, .., New.campon);
Responder Con Cita
  #3  
Antiguo 28-07-2005
Avatar de el_barto
el_barto el_barto is offline
Miembro
 
Registrado: may 2005
Ubicación: Bogota Colombia
Posts: 533
Poder: 20
el_barto Va por buen camino
Gracias maeyanes, pero aqui en este codigo como hago referencia que todo lo que tiene el prefijo New es de la tabla componentes??
Ademas yo no estoy insertando datos en la tabla componentes solo la imprimo en una grilla y le cambio el campo flag a 1 a los campos que yo desee adicionar a la tabla producto, en tonces en este caso como se puede hacer el trigger???
__________________
Una forma de alcanzar tus metas es ayudando a otros a alcanzar las suyas
Responder Con Cita
  #4  
Antiguo 28-07-2005
Avatar de el_barto
el_barto el_barto is offline
Miembro
 
Registrado: may 2005
Ubicación: Bogota Colombia
Posts: 533
Poder: 20
el_barto Va por buen camino
ahhh que brutico soy yo el trigger quedaria asi???

Código SQL [-]
 set term!!; 
   create trigger trig1 for componente
   after update as
   begin
      if New.Flag = 1 then
        insert into productos (cod_prod, item_prod, nom_comp, precio_comp)
         values (:cod_prod, :item_prod, New.nom_comp, New.precio_comp);
   end!!;
set term;!!

Si es asi???, creo que si, espero una respuesta afirmativa o correctiva, gracias por el hecho de leer este hilo
__________________
Una forma de alcanzar tus metas es ayudando a otros a alcanzar las suyas
Responder Con Cita
  #5  
Antiguo 28-07-2005
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hasta cierto punto, si, el trigger quedaría así. Ahora, en el código tienes puestas dos variables no declaradas; si tratas de compilar este trigger te va a dar un error.

Código SQL [-]
 set term!!; 
   create trigger trig1 for componente
   after update as
   begin
      if New.Flag = 1 then
        insert into productos (cod_prod, item_prod, nom_comp, precio_comp)
         values (:cod_prod, :item_prod, New.nom_comp, New.precio_comp);
         /* :cod_prod e :item_prod no están declaradas */
   end!!;
set term;!!

También recuerda que un trigger no puede recibir parámetros, así que tendrías que buscar una forma de obtener los dos valores que deseas. Ya sea llamando a un Store Procedure o realizando un Select dentro del trigger.


Saludos...
Responder Con Cita
  #6  
Antiguo 28-07-2005
Avatar de el_barto
el_barto el_barto is offline
Miembro
 
Registrado: may 2005
Ubicación: Bogota Colombia
Posts: 533
Poder: 20
el_barto Va por buen camino
ha pero entonces no se puede hacer por que esos dos datos los pensaba tomar de un dblookupcombobox. no hay otra manera de hacerlo sin necesidad de un trigger???
__________________
Una forma de alcanzar tus metas es ayudando a otros a alcanzar las suyas
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


La franja horaria es GMT +2. Ahora son las 17:45:39.


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