Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Eliminar Registro De Manera Dinamica??
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Eliminar Registro De Manera Dinamica?? 
 
Buen dia comunidad!!
Mi problema es que necesito eliminar un registro pero de manera que quede invisible pero que no se elimine radicalmente de la base de datos de manera que si por ejemplo realizo una busqueda de ese registro a traves de un formulario no aparezca en mi busqueda aunque todavia permanezca en la base de datos guardado
actualmente estoy usando este codigo pero me elimina todo el registro de la base de datos y no es lo que necesito
PUBLIC SUB btneliminarA_Click()
DIM query AS String
DIM pregunta AS Integer
IF (txtcedulaA.Text = "") THEN
  message.Warning("El campo Cedula no puede estar vacio" & "\n" & "Por favor introduzca el numero de" & "\n" & "cédula para realizar la búsqueda primero")
 ELSE
    pregunta = message.Warning("¿Esta seguro de eliminar el registro?", "Si", "No")
      IF pregunta = 1 THEN
          txtcedulaA.Enabled = TRUE
          query = "DELETE from liceo.alumnos where cedula_alumno='" & txtcedulaA.Text & "'"
          TRY ModConexion.consulta(query)
          IF ERROR THEN
          Message.Error("Imposible borrar el registro")
          ELSE
          message.Info("El registro ha sido eliminado")
          txtcedulaA.Clear
          cmbnacionalidadA.Clear
          txtnombreA.Clear
          txtapellidoA.Clear
          txtfechanacA.Clear
          txtedadA.Clear
          txtlugarnacA.Clear
          cmbsexoA.Clear
          txtprocedenciaA.Clear
          cmbturno.Clear
          cmbestatus.Clear
          cmbmencionA.Clear
          cmbnivelA.Clear
          txtcedulaRe.Clear
          txtcedulaA.SetFocus
          'btneliminarA.Enabled = FALSE
          END IF
      END IF
END IF
END


Gracias si alguien me puede ayudar con eso seria excelente
 



 
kexxya - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Eliminar Registro De Manera Dinamica?? 
 
Hola.

Yo tuve que hacer algo parecido y si no recuerdo bien, lo que hice fue agregar un campo mas a la tabla, por ejemplo campo visible.

en vez de borrar el registro grabas en el campo visible "no".

cuando creas la base de datos haces que el valor por defecto del campo visible sea "si"

si quieres ver los invisibles seria where visible = "no"

para ver los visibles where visible = "si"
 



 
última edición por pittusa el Viernes, 03 Junio 2011, 14:31; editado 1 vez 
pittusa - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Eliminar Registro De Manera Dinamica?? 
 
efectivamentes es la manera mas cómoda tener un campo de tipo boleano al que yo llamo ACTIVO y que por defecto vale TRUE pero que en caso de borrar lo pongo a FALSE en vez de borrarlo. Todas las querys tienen siempre la coletilla para que solo salgan registros activos.

Según casos otra forma es utilizar un TRIGGER de tal manera que cuando borras un registro este se borre, pero se inserte automáticamente en otra tabla auxiliar. De esa manera no pierdes la información pero la tabla principal no contiene tantos registros. En tu aplicación ni lo notas porque tu haces un delete como siempre, solo que luego te vas a la tabla auxiliar y allí está todo lo borrado.

En ambos casos hay que considerar (dado que de una forma u otra estamos eliminando registros de una query) los efectos de borrar o no un registro si usamos foreign keys o cruces de cualquier tipo naturalmente.
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Eliminar Registro De Manera Dinamica?? 
 
Yo utilizo postgresql, y en postgrest hay una opción RETURNING, la clausula especial RETURNING causa que DELETE retorne valores basados en cada fila eliminada. yo lo utilizo para guardar en un result los registros eliminados (por si después quisiera recuperarlos).
Dim Rsdel as Result
 Rsdel = Conexion.Exec("Delete from Tabla where id = " & Queid & " returning *")  ' en Rsdel estaran los registros borrados
  If Rsdel.Available Then ' Hay datos luego se ha borrado
   return Rsdel
  EndIf
 


Creo que RETURNING es un añadido de postgres, no se si otras bases de datos tienen una función parecida.

Yo lo utilizo para guardar los datos borrados por si luego quiero recuperarlo  y al añadir nuevos registros retorno el id, si tiene éxito Rsdel.Available  = TRUE.
 



 
angelnu - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron