PDA

Ver la Versión Completa : Acceder a BD Access sin bloquearla


vejerf
22-06-2010, 12:48:58
Hola a tod@s:

Estoy desarrollando mi primera aplicación con acceso a base de datos.

El problema que la base de datos es compartida entre dos programas y cuando yo ejecuto mi programa bloqueo la base de datos y la otra aplicación no puede acceder. ¿Cómo puedo solucionar esto?

Yo uso un ADOConnection y un ADOQuery y yo pensando en la compartición de la base de datos pensé en conectar el componente ADOConnection cada vez que lo necesitaba y cerrar la conexión cuando no.

Pero, al parecer, la base de datos se queda bloqueada (veo que aparece el fichero .ldb) y la otra aplicación no arranca bien porque no puede acceder a la base de datos.

Gracias y un saludo!

vejerf
22-06-2010, 13:18:50
Ufff fui demasiado rápido abriendo este hilo lo siento.

El problema no era tal, es decir, tal y como lo he planteado parece que funciona bien. El por qué no se podía abrir la otra aplicación es porque también tenía abierta directamente la base de datos con el access y así sí que estaba bloqueada, pero no era problema de mi aplicación Delphi.

He mirado para eliminar el hilo pero parece que un usuario no puede eliminar sus propios hilos.

Gracias a todos!

Neftali
22-06-2010, 14:05:05
No pasa nada, no hace falta que lo elimines, a otro usuario que busque sobre el tema le puede servir tu solución.

Como has descubierto no es tu aplicación la que bloquea, sino el Microsoft Access al abrir la Base de Datos.
En realidad se puede abrir sin bloquear, pero no es la opción por defecto.
Al abrir una Base de Datos desde Access, hay varias opciones en un desplegable junto al botón de abrir, pero si se hace con dible click desde el explorador, escoge la opción por defecto (que es bloqueando :mad:).

http://img97.imageshack.us/img97/1062/imagen365.png

rretamar
22-06-2010, 18:46:56
No te olvides de los gatitos. Por favor, salva a un felino.

vejerf
23-06-2010, 10:01:00
Lo siento rretamar por el gatito... no era mi intención :(

Gracias Neftalí por tu aportación... porque la verdad no tenía ni idea de eso.

Saludos!

Caral
24-06-2010, 02:49:03
Hola
No se me ha bloqueado nunca ningun programa abrindo la bd access.
Ni dando doble click ni nada.
La unica manera de que se bloquee el programa, no la bd, es cuando abres una tabla en forma de diseño.
pero la bd puede estar abierta, se puede modificar, hacer lo que se quiera y no pasara nada.
No se por que se bloqueo, es algo que nunca me ha pasado.
Saludos

Jucho69
24-06-2010, 19:06:40
Hola a Todos

Caral, ¿puedes echarle una hojeada al sistema de facturación que hice a ver que le falta o que me recomendarías cambiar? como tú que tienes más esperiencia en este tipo de programa te agradeceria tu opinion.

Saludos ;)

Caral
24-06-2010, 19:11:10
Hola
Si esta en access ponlo por aqui y lo revisamos con gusto.
Saludos
PD: Yo esperiencia????, quien te ha mentido amigo jejeje

Jucho69
24-06-2010, 19:47:52
Lo puse en el FTP "Otros", dentro de Utiles hay un programa que genera el código de acceso, te agradesco a tí y a los demás miembros por el tiempo que se toman con nuestros lios, bien por el Club,.......y con cinco post más voy a hacer una fiesta.

Saludos :D

Caral
24-06-2010, 20:49:40
Hola
El programa es Cuentas Facturacion?
Saludos

Jucho69
24-06-2010, 21:32:59
El mismo, lo subi hace algunos días

Saludos :)

Caral
24-06-2010, 21:50:32
Hola
El programa tiene buena pinta pero:
1- No das los componentes de los botones que usas, eso dificulta correrlo.
2- No das la clave de la bd, no se pude ver como la configuraste.
Por lo demas se ve muy bien.
saludos

Jucho69
24-06-2010, 22:24:38
Hola Caral

Tienes razón, la clave es "rosello07" y el tipo de boton que usé se llama dxpack y lo puse en el FTP Builder/Componentes.

Saludos y gracias por tu valoración inicial.

Caral
24-06-2010, 23:09:26
Hola
Cosas que veo, recuerda que soy novato, no te lo creas todo:
Programa:
1- No usas datamodule para la conexion.
2- No usas o no veo un adoconnection, cada tabla o query tiene su conexion, esto es lentisimo y mucho mas codigo del necesario.
3- En el form 1 se hace todo en el form create, se busca la bd, la direccion, se abren todas las tablas de golpe, incluso las de los otros forms, se especifican detalles de los otros forms sin ni siquiera tenerlos activos..
4- El proyecto carga todos los forms al principio.
5- Activas y usas querys de otros forms en otros, por ejemplo en el form2 usas querys del form 1, claro, ya lo activaste, pero no es bueno.
6- Las sentencias sql las usas mucho con ADD, esto para mi es complicado por que no te deja re_usar los query sin limpiarlos antes y te complica, esto es personal, me gusta text en vez de add.
Base de datos:
Para mi gusto y pensando en que tal vez algun dia quieras cambiar de BD le cambiaria los campos Boleanos por numericos o char, asi se te complicara mucho menos el cambio.
valoracion del novato, osea mia :D:
Creo que si la nota va por la cantidad de trabajo, la apariencia estetica, la forma, tienes un 10, pero si va por compactar, por hacerlo mas claro y eficiente te doy un 6., pensando que eres novato.
Espero no ser duro.:cool:
Saludos

Jucho69
24-06-2010, 23:21:52
Hola Caral

No te preocupes que estoy tomando notas, voy a revisarlo todo y ver el uso del adoconection sobre todo, tengo que organizar mejor la estructura del programa para que como tu dices no se recarge todo al principio, etc.
Siempre hace falta que alguiente aclare un poco así que agradecido y a trabajar.

Saludos

Caral
25-06-2010, 00:23:19
Hola
El datamodule te va a ayudar a organizar la conexion.
El adoconnection te conecta todos los table y query de una vez, no de uno en uno, menos trabajo, mas estable, mejor.
Llamar a los forms cuando se necesite y destruirlos acelera el programa y no quita memoria.
Activar y desactivar los table y query cuando sea necesario acelera mucho la bd.
Hacer tansacciones (commit) elimina dolores de cabeza y tanto ado como access lo permite.
Saludos

Neftali
25-06-2010, 10:25:32
He movido el componente del botón (dxButton (http://www.terawiki.clubdelphi.com/archivos/Delphi/Componentes-Funciones/dxButton_dxpack.zip)) a la sección de Componentes Delphi (http://www.terawiki.clubdelphi.com/Delphi/Componentes-Funciones/), en el FTP (estaba en la de Builder).

El proyecto "Cuentas Facturación" (http://www.terawiki.clubdelphi.com/archivos/Delphi/Proyectos/Cuentas_Facturacion.rar) lo he movido al apartado de Proyectos Delphi (http://www.terawiki.clubdelphi.com/Delphi/Proyectos/), y he eliminado la "tilde" para que no haya problemas al descargarlo.

Jucho69, si quieres edita tus mensajes y actualiza los links.

Jucho69
25-06-2010, 18:21:38
Hola Neftali un saludo

Así igual, no hay problemas