Programación General > Visual Basic 6.0 e inferiores

 ¿como Saber Si Una Bd Está Corrupta?

(1/2) > >>

Escalona:
Bueno mi problema es ese, tengo una aplicacion que usa una BD creada en Access, cada cierto tiempo voy creando Backups de esa Base de Datos, pero claro, antes de generar el Backup me gustaria saber si la BD está o no corrupta para evitar hacer Backups e una BD en mal estado.
 
Bueno a ver si se os ocurre alguna manera de hacerlo. Gracias!

lois_:
Puedes usar el checksum del archivo, almacenandolo con cada registro y comparandolo antes de cada registro. La suma se puede obtener de muchas formas, yo te pasteo aquí una función:

--- Código: Text --- Private Function ObtenerMD5(ByVal fichero As String) As String        Dim cadenaMD5 As String = ""        Dim cadenaFichero As FileStream        Dim bytesFichero As [Byte]()        Dim MD5Crypto As New MD5CryptoServiceProvider        cadenaFichero = File.Open(fichero, FileMode.Open, FileAccess.Read)        bytesFichero = MD5Crypto.ComputeHash(cadenaFichero)        cadenaFichero.Close()        For Each datos As Byte In bytesFichero            If datos < 16 Then                cadenaMD5 &= "0" & datos.ToString("X")            Else                cadenaMD5 &= datos.ToString("X")            End If        Next        Return cadenaMD5End Function   
Un saludo.

cpmario:
Cuando la base de datos está corrupta al abrirla se generará un error, por ejemplo en DAO 35 el error se muestra así:

--- Citar ---Imposible abrir la base de datos <name>. Es posible que su aplicación no reconozca este tipo de base de datos o bien que el archivo esté dañado. (Error 3049)
--- Fin de la cita ---
Lo que debes hacer es abrir la base de datos, si se genera un error no la copies, si no hay error, cierra la base de datos y entonces procede a copiarla.

 :comp:

lois_:
Bastante más simple y útil que lo que se me había ocurrido a mi  :P

Escalona:
Sí, eso es lo que intente en un primer momento, el problema es que la BD es en ACCESS, y si algun otro proceso esta usando la BD en ese mismo instante, me da error al abrirla, de manera que interpretaría como una BD corrupta, a una que no lo está.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa