Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Acceder a BD Access sin bloquearla (https://www.clubdelphi.com/foros/showthread.php?t=68582)

vejerf 22-06-2010 12:48:58

Acceder a BD Access sin bloquearla
 
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 [Germán.Estévez] 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:).


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 [Germán.Estévez] 25-06-2010 10:25:32

He movido el componente del botón (dxButton) a la sección de Componentes Delphi, en el FTP (estaba en la de Builder).

El proyecto "Cuentas Facturación" lo he movido al apartado de Proyectos Delphi, 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



La franja horaria es GMT +2. Ahora son las 07:33:00.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi