Como saber el archivo BaseDeDatos.mdb pertenece a mi aplicacion?

Iniciado por TheGhost(Z), 16 Marzo 2011, 18:04 PM

0 Miembros y 2 Visitantes están viendo este tema.

TheGhost(Z)

Hola, Amigos

Mi pregunta es simple. ¿como puedo saber que dicho archivo.mdb es con el que mi aplicación interactuará?

Es para que mi aplicación  no ejecute otro archivo.mdb con el mismo nombre.

Habrá algún código que se pueda poner en el arcchivo.mdb que pueda leer mi aplicación.

algo así como:

MiAplicacion.exe v1.0 (Ejecute solo)  BaseDeDatos.mdb v1.0
MiAplicacion.exe v1.1 (ejecute solo)  BaseDeDatos.mdb v1.1


y así sucesivamente...

Saludos,
Pedro :-(



Novlucker

No entiendo, no entiendo, no entiendo :xD
Eres tu quién establece la ruta de la base de datos en la aplicación, así que si bien puede que tengas dos archivos con el mismo nombre, seguro no estan en el mismo path.

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

[D4N93R]

Yo tampoco entendí xD

Creo que dices que si la app cambia de versión, entonces también la BD por lo tanto no podrá usar un archivo de BD de una versión anterior no?

TheGhost(Z)

Claro, la aplicación tiene una ruta guardada en App.Setting. Al inicializar comprueba que exista dicho archivo. si no la encuentra muestra un ShowDialog para buscar el archivo. ahí es donde entra el problema. Quiero evitar que el usuario seleccione un archivo que no esta diseñado para mi aplicación y que tiene el mismo nombre, ya sea por pura casualidad o porque alguien le puso ese nombre por molestar.

Por otro lado, cuando modifico algo en la aplicación aveces tambien modifico la base de datos como: agregar una tabla, campos, etc.  entonces para ello la apliación debe saber que la base de datos que el usuario esta seleccionando es la que tiene efectuado esos cambios.

y ahí mi pregunta como hago para que mi aplicación se entere de que la base de datos que el usuario esta seleccionando es la base de de datos correcta.

Algo como así.

If MiBaseDeDatos.Version = My.App.Version Then
Cargo mi aplicación
Else
Msgbox("Esta base de datos es un versión anterior. Busque la base de datos de la ultima versión")
End IF



[D4N93R]

Con eso de la versión no estoy muy seguro. Pero puedes tener un archivo por ahí oculto en donde guardes el esquema de la BD que estas usando, entonces cuando cargas un archivo de BD compraras los esquemas a ver si es válido.

http://msdn.microsoft.com/en-us/library/kcax58fh.aspx

Un saludo!

TheGhost(Z)

Lo de la esquema me parece un poco complicado para algo tan simple.  Se me ha ocurrido dos cosas.

1.- Crear una tabla con la versión de mi app. Luego aría algo así:

Try
     "Select * From Version1.0"
Catch
     Msgbox("La base de datos seleccionada es incorrecta o es de una versión anterior")
     Application.Exit()
End Try


2.- También podría proteger la base de datos con una contraseña. Y la contraseña sería la versión de mi app.

A estas dos ideas puedo llamarlos truquillos. me gustaría implementar algo más profesional. Pero como no se me ocurre nada mejor. Algún consejo para mejorar esto?...



Xephiro

Creo que la opción de crear una tabla no es mala idea, pero podrías poner algún dato mas como una llave de comprobación mas que solo la versión para que sea un poco mas complicado de imitar que solo poner la versión de tu app.