Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
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 13-10-2005
Jorge Taveras Jorge Taveras is offline
Miembro
 
Registrado: abr 2004
Ubicación: Santo Domingo
Posts: 68
Poder: 20
Jorge Taveras Va por buen camino
Lightbulb Como controlo el doble borrado ?

Tengo el siguiente sql en un adodataset

select
M.Documento,
M.Orden,
M.ClaveProducto,
M.CostoUnitario,
M.Cantidad,
M.Precio,
M.DescuentoInd,
M.recargoInd,
M.Importe,
M.Nota01,
M.Nota02,
Eq.DescripcionEspanol,
Eq.DescripcionIngles,
Eq.Modelo
From Cot_CotizacionDet M
Join Equipos Eq on eq.clave = m.claveproducto
WHERE M.Documento = ocumento
ORDER BY M.ORDEN

con el agrego, modifico y consulto los registros correctamente.
Es bueno señalar que los campos descripcionEspanol y descripcion ingles son campos memos, traté de hacer un lockup pero no es posible con campos memos.
Pues, siguiendo con la idea, el punto es que ese adodataset es un adodatasetDetalle, de un formulario que le incluyo registros de cotizaciones.
puedo agregarle registro a la cotizacion pero si borro un registro de esta, me borra el registro asociado en un maestro de equipos que tengo donde tengo las descripciones en ingles y en español.
Ayuuda... me urge una respuesta rapida a este problema.
Responder Con Cita
  #2  
Antiguo 13-10-2005
Avatar de epuigdef
epuigdef epuigdef is offline
Miembro
 
Registrado: jul 2005
Posts: 196
Poder: 19
epuigdef Va por buen camino
Buenas!


En lugar de borrar sobre este dataset puedes crear un query de borrado:

delete from cotizaciones_det where clave = ......

Y ejecutarlo aparte de la select que tienes

Un saludo

Edu
Responder Con Cita
  #3  
Antiguo 13-10-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Jorge Taveras
...pero si borro un registro de esta, me borra el registro asociado en un maestro de equipos que tengo donde tengo las descripciones en ingles y en español.
¿No tendrás definido en la Base de Datos Borrados en cascada?
Es la única explicación que se me ocurre para que se borre un registro sólo (sin que tú hayas programado nada).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 13-10-2005
Jorge Taveras Jorge Taveras is offline
Miembro
 
Registrado: abr 2004
Ubicación: Santo Domingo
Posts: 68
Poder: 20
Jorge Taveras Va por buen camino
Estimado Neftali, me gustaria saber a que te refieres con el borrado en cascada en la base de datos. Me refiero a si hablas de una propiedad de la base de datos que se puede manejar o algun triggers o procedimiento que produce este efecto.
Responder Con Cita
  #5  
Antiguo 13-10-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Justo a eso me refería. A que si tú no borras el registro, tal vez se esté borrando desde la Base de Datos como tú bien dices: Borrados en casacada o triggers.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 13-10-2005
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 22
__hector Va por buen camino
El borrado en cascada no es un trigger en su esencia, aunque se comporte como tal. Al definir una relacion entre dos tablas, especificamente una llave foranea entre campos de dos tablas, puedes especificar que accion tomar en caso de que el campo de la tabla maestro (o el registro como tal) se modifique o elimine.

Entre esas acciones estan: actualizar el registro detalle, eliminar el registro detalle (en caso de tratarse de un delete del registro maestro) o cambiar el valor del campo en el detalle por un valor 'por defecto'. Algo asi como que si eliminas el registro maestro, el campo claveid de la tabla detalle que antes tenia el valor claveid de la tabla maestro tenga un valor de '0', o cualquier otro valor.
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
  #7  
Antiguo 13-10-2005
Jorge Taveras Jorge Taveras is offline
Miembro
 
Registrado: abr 2004
Ubicación: Santo Domingo
Posts: 68
Poder: 20
Jorge Taveras Va por buen camino
Estimado Neftali, me gustaria saber a que te refieres con el borrado en cascada en la base de datos. Me refiero a si hablas de una propiedad de la base de datos que se puede manejar o algun triggers o procedimiento que produce este efecto.
Responder Con Cita
  #8  
Antiguo 13-10-2005
Jorge Taveras Jorge Taveras is offline
Miembro
 
Registrado: abr 2004
Ubicación: Santo Domingo
Posts: 68
Poder: 20
Jorge Taveras Va por buen camino
Estimado hector, me puedes decir como hacerlo desde un adodataset, puesto que no he podido localizar esas propiedades que hablas.
Responder Con Cita
  #9  
Antiguo 13-10-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Jorge Taveras
..me gustaria saber a que te refieres con el borrado en cascada en la base de datos. Me refiero a si hablas de una propiedad de la base de datos que se puede manejar o algun triggers o procedimiento que produce este efecto.
Son propiedades que defines al crear la Base de Datos. No debes buscarlas en los componentes de Delphi; Debes hacerlo desde el Administrador de SQL Server. Como ya te han dicho se definen en las propiedades de las relaciones entre tablas (si es un borrado en cascada). Si es un trigger también debes buscarlo en el administrador de BD.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #10  
Antiguo 14-10-2005
Jorge Taveras Jorge Taveras is offline
Miembro
 
Registrado: abr 2004
Ubicación: Santo Domingo
Posts: 68
Poder: 20
Jorge Taveras Va por buen camino
Agradezco a todos su colaboracion, resolví el problema borrando desde otro query como varios habian sugerido, aunque , me gustaria conocer mas sobre el borrado en cascada...
Gracias... muchas gracias
Responder Con Cita
  #11  
Antiguo 14-10-2005
Avatar de epuigdef
epuigdef epuigdef is offline
Miembro
 
Registrado: jul 2005
Posts: 196
Poder: 19
epuigdef Va por buen camino
Si has solucionado el problema con otro query como te sugerí, entonces el problema no estaba en el borrado en cascada, sino en que estabas borrando sobre un query en el que había una join.


Un saludo

Edu
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


La franja horaria es GMT +2. Ahora son las 18:14:24.


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