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 10-03-2008
Avatar de josi
josi josi is offline
Miembro
 
Registrado: feb 2008
Posts: 100
Poder: 17
josi Va por buen camino
actualizar un campo de una tabla en sql desde delphi

tengo un campo que se llama exsistencia de una tabla ARTICULOS como hacer para que en el campo exsistencia se le vaya sumando las cantidades de entradas de la tabla ENTRADA D ARTICULOS.
Responder Con Cita
  #2  
Antiguo 10-03-2008
mamaro mamaro is offline
Miembro
 
Registrado: mar 2004
Posts: 79
Poder: 21
mamaro Va por buen camino
Hola

Yo normalmente utilizo Firebird, y en estos casos incluyo un disparador en la tabla Entradas, como te lo detallo:

Tabla Articulo:
Ident integer (clave primaria)
Nombre varchar(30)
Existencia integer

Tabla Entrada:
ident integer (clave primaria)
Fecha timestamp
Articulo integer (clave foránea a tabla Articulo)
Cantidad integer

Agrego el siguiente disparador para ésta última tabla en el evento AFTERINSERT:
Código SQL [-]
begin
  update ARTICULO
  set existencia=existencia+new.cantidad;
end

.. y si se permiten modificar las entradas se puede crear éste disparador en el evento AFTERUPDATE:
Código SQL [-]
begin
  update ARTICULO
  set existencia=existencia+(new.cantidad-old.cantidad);
end

.. y si se permite eliminar entradas, en el evento BEFOREDELETE:
Código SQL [-]
begin
  update ARTICULO
  set existencia=existencia-old.cantidad;
end

Yo normalmente pongo en la base de datos todo aquel código que representa una "regla del negocio" (eso que nunca cambia y que probablemente lo voy a utilizar desde varios lugares).

Bueno saludos y espero te sirva.
Responder Con Cita
  #3  
Antiguo 11-03-2008
Avatar de josi
josi josi is offline
Miembro
 
Registrado: feb 2008
Posts: 100
Poder: 17
josi Va por buen camino
dime

este cod es en delphi?
lo que pasa es soy un bebe en esto escusame
Responder Con Cita
  #4  
Antiguo 11-03-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
El código es SQL y mamaro sugería que usaras triggers.

Si queres hacerlo desde delphi, podrías poner un componente TQuery (o el equivalente de la capa de acceso a datos que uses, por ejemplo TADOQuery si conectas con ADO) y poner en su propiedad SQL:

Código SQL [-]
update articulo
  set existencia = existencia + :delta
 where IdArticulo = :id

Y ejecutarlo cada vez que te sea necesario con delphi así:

Código Delphi [-]
procedure TdmInventario.ActualizaExistencias(AIDArticulo: Integer; ADelta: Double);
begin
  qActualizaExistencia.ParamByName('id').AsInteger := AIDArticulo;
  qActualizaExistencia.ParamByName('delta').AsFloat := ADelta;
  qActualizaExistencia.ExecSQL;
end;

Algunas bibliotecas no publican un método ParamByName en el query directamente, sino dentro de su propiedad Params.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
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
Agregar campo en una tabla access desde delphi Chogo Tablas planas 1 10-10-2007 21:22:42
Actualizar un campo de una tabla con datos que se encuentran en otra tabla Morphine SQL 4 15-12-2006 22:47:42
Modificar campo tabla access desde delphi JuanHC Conexión con bases de datos 3 25-09-2006 13:15:02
actualizar tabla al calcular un campo autocalculado Telemaco Conexión con bases de datos 14 08-04-2004 17:07:14
Capturar el campo de una tabla, desde delphi thecarlos Varios 1 10-01-2004 07:16:50


La franja horaria es GMT +2. Ahora son las 10:07:30.


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