Foros del Web » Programación para mayores de 30 ;) » .NET »

Problema con la consulta sobre una tabla relacionada (1..n). Borro una fila y da ERR

Estas en el tema de Problema con la consulta sobre una tabla relacionada (1..n). Borro una fila y da ERR en el foro de .NET en Foros del Web. Hola amigos de este genial foro, muchas gracias por el esfuerzo y dedicación en mantener tan valiosa herramienta para los programadores. Éste es mi primer ...
  #1 (permalink)  
Antiguo 01/05/2013, 19:00
 
Fecha de Ingreso: mayo-2013
Ubicación: Chaco, Argentina
Mensajes: 45
Antigüedad: 11 años, 6 meses
Puntos: 3
Pregunta Problema con la consulta sobre una tabla relacionada (1..n). Borro una fila y da ERR

Hola amigos de este genial foro, muchas gracias por el esfuerzo y dedicación en mantener tan valiosa herramienta para los programadores.

Éste es mi primer post.

Les pido ayuda en un problema que encontré al desarrollar una aplicación en .NET con acceso a una BD Access.

Se trata de dos tablas relacionadas 1..n:

Tabla Artículos(parte n de la Relación)
artID
artDesc
artPrecioCompra
artPrecioVenta
artCódProveedor
artCódMarca
Tabla MarcasComerciales (parte 1 de la Relación)
marID
marDesc
El problema es el siguiente:

El usuario da de alta las marcas comerciales y luego da de alta los artículos.
Luego, cuando mira el listado de artículos en el dataGrid correspondiente, percibe que una marca comercial está duplicada, por ej.:

"Villa Vicencio", cuyo ID = 8
"Viya Visensio ", cuyo ID = 9


Se dá cuenta que se ingresó la misma marca dos veces, entonces decide eliminar la errónea, en este caso "Viya Visensio".

Luego el usuario consulta nuevamente la lista de artículos, y vaya sorpresa, se encuentra con el error que "No existe la fila en la tabla relacionada"

Mi solución fue reemplazar el INNER JOIN de la consulta Access por un LEFT JOIN, pero resulta tedioso modificar los artículos uno por uno para actualizar la marca comercial luego de haber ingresado una veintena de artículos con la marca errónea, además se genera confusión si existen más marcas duplicadas que se borraron y no se sabe que marca corresponde a cada artículo.

Lo único que se me ocurrió, para que el usuario no tenga que realizar ninguna modificación, fue hacer una consulta access de actualización, para reemplazar el ID 9 por el ID 8:

Código:
UPDATE [Artículos] SET [Artículos].[artCódMarca] = 8 WHERE [Artículos].[artCódMarca] = 9
Para eso la aplicación le pide al usuario que seleccione la marca comercial.

¿está bien la solución que implementé?
¿cuál es la forma correcta de programar esto?
¿Puede prevenirse estos tipos de inconvenientes?

Espero haberme explicado correctamente.

Saludos cordiales.

Última edición por javidotnet; 01/05/2013 a las 19:15 Razón: aclarar más

Etiquetas: access, bd, duplicado, innerjoin, relacion, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:16.