• Viernes 8 de Noviembre de 2024, 07:45

Autor Tema:  Consulta  (Leído 2043 veces)

tzalejo

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
Consulta
« en: Miércoles 21 de Julio de 2010, 01:30 »
0
hola a todos...tengo una nueva consulta...tengo en mi bd(Sql Server 2005) 2 tablas relacionadas:

categoria(id_Categoria,nombrecat)
producto(id_Producto,nombre,...,id_Categoria)

...bueno lo q quiero es poder eliminar un registro de la tabla categoria...yo se q primero tengo k eliminar los datos relacionados...lo q hago es...

1- preguntar primero si tiene dato la tabla producto
2-eliminar los datos si lo tuviera d la tabla producto
3-eliminar las datos de la tabla categoria

bueno aca va mi consulta...si c puede hacer es el paso 1 y 2 juntos y luego hacer el paso 3...espero haberme explicado...saludo ale :hitcomp:

gerloxxx

  • Miembro MUY activo
  • ***
  • Mensajes: 121
    • Ver Perfil
Re: Consulta
« Respuesta #1 en: Jueves 22 de Julio de 2010, 02:30 »
0
Puedes crear la relacion en SQL Server,  actualizar y/o eliminar en cascada, asi cuando elimines un registro, el motor de sql borrará sus relaciones

saludos

tzalejo

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
Re: Consulta
« Respuesta #2 en: Jueves 22 de Julio de 2010, 12:37 »
0
si podria ser...pero yo estaba buscand alguna salucion con respecto al codigo..pero gracias d todoas formas... :comp:

joselotacna

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Consulta
« Respuesta #3 en: Domingo 25 de Julio de 2010, 19:51 »
0
Cita de: "tzalejo"
hola a todos...tengo una nueva consulta...tengo en mi bd(Sql Server 2005) 2 tablas relacionadas:

categoria(id_Categoria,nombrecat)
producto(id_Producto,nombre,...,id_Categoria)

...bueno lo q quiero es poder eliminar un registro de la tabla categoria...yo se q primero tengo k eliminar los datos relacionados...lo q hago es...

1- preguntar primero si tiene dato la tabla producto
2-eliminar los datos si lo tuviera d la tabla producto
3-eliminar las datos de la tabla categoria

bueno aca va mi consulta...si c puede hacer es el paso 1 y 2 juntos y luego hacer el paso 3...espero haberme explicado...saludo ale :hitcomp:

Hola, te dire creo k no es correcto ello, ya tienes k eliminar primero los productos y mas aún si esos productos estan relacionados con otras tablas "factura, comprobante, etc" ummm.... ahi, pero en fin se puede hacer:
tus tablas:
categoria(id_Categoria,nombrecat)
producto(id_Producto,nombre,...,id_Categoria)

1 - Al eliminar un cargo se supone que necesitas su codigo "id_categoria", entonces, primero eliminar los registrios de la tabla Productos DONDE su ID_CATEGORIA = xxxxx, luego recine procedes a aliminar el registro de la tabla CATEGORIA
2- Ahora puedes agregar un campo ESTADO a las tablas, en este caso CATEGORIA, de tipo BIT (es decir acepta TRUE o FALSE), y cada vez que agregues un registro en la tabla CATEGORIA este campo se guardara como TRUE (eso quiere decir que estara habilitado la CATEGORIA) y cuando quieras "ELIMINAR" una categoria, solo modificaras ese campo a FALSE (eso quiere decir que estará desabilitado la CATEGORIA)

saludos jose ponce

tzalejo

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
Re: Consulta
« Respuesta #4 en: Lunes 26 de Julio de 2010, 22:05 »
0
hola kmo estan..gracias x la respuesta...es una buen opcion hacer eso joselotacna ...no lo pense asi...pero bueno lo k yo iba es poder hacer esto:

Código: vb.net
  1. Try
  2.                 Dim CmdEP As New SqlCommand
  3.                 Dim CmdEP2 As New SqlCommand
  4.                
  5.                 CnSql.Open()
  6.                 With CmdEP
  7.                     .Connection = CnSql
  8.                     .CommandType = CommandType.Text
  9.                     .CommandText = " DELETE FROM Productos " & _
  10.                                    " FROM Categorias INNER JOIN " & _
  11.                                    " Productos ON Categorias.Id_Categoria = Productos.Id_Categoria " & _
  12.                                    " WHERE Categorias.Id_Categoria = " & miIdC
  13.                     .ExecuteNonQuery()
  14.                 End With
  15.                 CnSql.Close()
  16.                 CnSql.Open()
  17.                 With CmdEP2
  18.                     .Connection = CnSql
  19.                     .CommandType = CommandType.Text
  20.                     .CommandText = " DELETE FROM Categorias " & _
  21.                                    " WHERE Categorias.Id_Categoria = " & miIdC
  22.                     .ExecuteNonQuery()
  23.                 End With
  24.             Catch ex As Exception
  25.                 MsgBox(ex.Message.ToString, MsgBoxStyle.Critical, "SISTEMA MACHADO")
  26.             Finally
  27.                 If Not CnSql Is Nothing Then
  28.                     If CnSql.State = ConnectionState.Open Then
  29.                         CnSql.Close()
  30.                     End If
  31.                 End If
  32.             End Try
  33.  
[/color]

un poko mas eficiente en el codigo...o asi esta bien?...bueno eso era todo....