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 01-12-2009
hybrid hybrid is offline
Miembro
 
Registrado: nov 2009
Posts: 17
Poder: 0
hybrid Va por buen camino
Exclamation actualizar tabla al insertar en otra tabla

hola,

me gustaria saber si es posible actualizar el registro de una tabla al hacer un post en otra utilizando lo de master/detail.

gracias!
Responder Con Cita
  #2  
Antiguo 01-12-2009
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 18
rgstuamigo Va por buen camino
Arrow

Cita:
Empezado por hybrid Ver Mensaje
hola,

me gustaria saber si es posible actualizar el registro de una tabla al hacer un post en otra utilizando lo de master/detail.

gracias!
No te entiendo mucho lo que pretendes hacer..danos un poco mas de detalles.
Que es exactamente lo que deseas hacer?
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #3  
Antiguo 01-12-2009
hybrid hybrid is offline
Miembro
 
Registrado: nov 2009
Posts: 17
Poder: 0
hybrid Va por buen camino
me gustaria actualizar un registro de la tabla 'compras_cliente' donde tengo el numero de compras de cada cliente, al hacer un cliente una compra

es decir... al hacer un post(insert) en la tabla 'compras' me gustaria que se actualizara un campo de la tabla 'compras_cliente' con un update

es posible?

Última edición por hybrid fecha: 01-12-2009 a las 20:11:18.
Responder Con Cita
  #4  
Antiguo 01-12-2009
rafita rafita is offline
Miembro
 
Registrado: ago 2003
Ubicación: Cuenca- España.
Posts: 309
Poder: 22
rafita Va por buen camino
Hola,

Pues depende que gestor de bases de datos utilices.
Por lo que yo conozco, la mayoría permiten "disparadores" o "tiggers" que son funciones asociadas a las tablas, y que el gestor de base de datos ejecuta automáticamente según tus necesidades.

En tu caso necesitas un disparador BEFORE INSERT ....

Saludos
__________________
Rafita.
Responder Con Cita
  #5  
Antiguo 01-12-2009
hybrid hybrid is offline
Miembro
 
Registrado: nov 2009
Posts: 17
Poder: 0
hybrid Va por buen camino
es access... creo q no hay disparadores en access
Responder Con Cita
  #6  
Antiguo 01-12-2009
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 18
rgstuamigo Va por buen camino
Arrow

Entonces puedes usar los eventos BeforePost ó AfterPost de tu DataSet(Query,Table).depende sea tu caso
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #7  
Antiguo 01-12-2009
hybrid hybrid is offline
Miembro
 
Registrado: nov 2009
Posts: 17
Poder: 0
hybrid Va por buen camino
muchas gracias!! si es lo q estaba pesando hacer... pero m interesa mas hacerlo despues del update...

hay algun evento q salte al ejecutar un execSQL¿?
Responder Con Cita
  #8  
Antiguo 01-12-2009
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 18
rgstuamigo Va por buen camino
Arrow Pregunto

Cita:
Empezado por hybrid Ver Mensaje
muchas gracias!! si es lo q estaba pesando hacer... pero m interesa mas hacerlo despues del update...

hay algun evento q salte al ejecutar un execSQL¿?
¿Que componentes estas usando?
¿Como haces las actualizacion mediante codigo SQL o usando los metodos propios de tu DataSet?.
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #9  
Antiguo 01-12-2009
hybrid hybrid is offline
Miembro
 
Registrado: nov 2009
Posts: 17
Poder: 0
hybrid Va por buen camino
un adoquery con el que haria el execsql (update)
un adotable con el q haria un post.

el update lo hago con sentencia sql y el insert con post...

la idea seria...

1.-update en una tabla con sentenciasql
2.-post en la otra tabla
Responder Con Cita
  #10  
Antiguo 01-12-2009
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 18
rgstuamigo Va por buen camino
Arrow

Entonces luego de hacer el ExecSQL poné ADOtable.Post. y ya...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #11  
Antiguo 01-12-2009
hybrid hybrid is offline
Miembro
 
Registrado: nov 2009
Posts: 17
Poder: 0
hybrid Va por buen camino
es q eso es lo q hago... pero m da un error....
'No se puede agregar o cambiar el registro porque se necesita un registro relacionado en la tabla COMPRAS_CLIENTE'

por eso he pensado q hacerlo manualmente era incorrecto... y q seria algo mas parecido a un trigger, por eso lo del onpost... m habia sonado bien
Responder Con Cita
  #12  
Antiguo 01-12-2009
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 18
rgstuamigo Va por buen camino
Arrow

Cita:
Empezado por hybrid Ver Mensaje
es q eso es lo q hago... pero m da un error....
'No se puede agregar o cambiar el registro porque se necesita un registro relacionado en la tabla COMPRAS_CLIENTE'

por eso he pensado q hacerlo manualmente era incorrecto... y q seria algo mas parecido a un trigger, por eso lo del onpost... m habia sonado bien
Entonces quiere decir que primero debes insertar el master y luego el detalle,(Cambia el orden primero el post y luego el ExecSQL) aunque debes tener cuidado al hacer la actualizacion justo por lo que acabas de mencionar (las referencias foraneas).
El criterio que yo uso para esos casos es:
Cita:
* Si voy a insertar un nuevo registro pues inserto primero el Master y luego el detalle
*Si voy a actualizar un registro elimino todos los detalles de ese registro ,edito el master y luego nuevamente inserto el detalle;claro esta que yo trabajo con transacciones y desde luego no siempre es adecuado hacerlo asi.
*Si voy a eliminar un registro pues elimino primero el detalle y luego el master.
Espero que te sea de utilidad.
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #13  
Antiguo 01-12-2009
hybrid hybrid is offline
Miembro
 
Registrado: nov 2009
Posts: 17
Poder: 0
hybrid Va por buen camino
gracias!! ahora cambiar el orden a ver q tal
Responder Con Cita
  #14  
Antiguo 01-12-2009
hybrid hybrid is offline
Miembro
 
Registrado: nov 2009
Posts: 17
Poder: 0
hybrid Va por buen camino
ya esta... aunke esto tampoco me libera de que dos usuarios agregen al mismo tiempo y pum....

existen transacciones en access?

Última edición por hybrid fecha: 01-12-2009 a las 23:27:58.
Responder Con Cita
  #15  
Antiguo 02-12-2009
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 18
rgstuamigo Va por buen camino
Arrow

Cita:
Empezado por hybrid Ver Mensaje
...
existen transacciones en access?
Chequea las siguientes propiedades del Componente ADOConnection.
Código Delphi [-]
ADOConnection1.BeginTrans;
ADOConnection1.CommitTrans;
ADOConnection1.RollbackTrans;
ADOConnection1.InTransaction;
Mejor si lees la ayuda de Delphi o un manual al respecto.
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 03-12-2009 a las 15:12:04.
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
Actualizar tabla con datos de otra tabla mediante UPDATE Rockin Firebird e Interbase 18 28-11-2007 20:15:42
Actualizar un campo de una tabla con datos que se encuentran en otra tabla Morphine SQL 4 15-12-2006 23:47:42
Actualizar una tabla con una consulta de otra tabla JODELSA SQL 2 14-09-2006 05:07:01
Dbgrid para insertar en una tabla pero cogiendo datos de otra tabla taru MySQL 1 27-07-2006 16:36:12
Como insertar datos de una tabla en otra tabla? Salomon Firebird e Interbase 1 28-08-2003 12:29:40


La franja horaria es GMT +2. Ahora son las 01:30:48.


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