Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Tablas planas (https://www.clubdelphi.com/foros/forumdisplay.php?f=20)
-   -   como tratar los querys en una base de datos de access (https://www.clubdelphi.com/foros/showthread.php?t=67385)

richy08 14-04-2010 19:17:46

como tratar los querys en una base de datos de access
 
buenos dias compañeros estoy trabajando en la interfaz con aldelo restaurant dicho sistema usa access, nunca he trabajado con access por lo que he entendido dicho sistema trabajo con bloqueo de tablas he buscado informacion en el foro pero los enlaces que he encontrado al parecer estan rotos, podrian ayudarme explicandome la logica de como debo de hacer las conexiones y como tratar las insercciones y cuando desconectar con la bd para no porvocar un caos dentro del sistema del aldelo mil gracias por cualquier comentario.

Caral 14-04-2010 22:46:03

Hola
Aqui hay algo muy básico.
Saludos

Neftali [Germán.Estévez] 15-04-2010 10:26:04

Cita:

Empezado por richy08 (Mensaje 360504)
...podrian ayudarme explicandome la logica de como debo de hacer las conexiones y como tratar las insercciones y cuando desconectar con la bd para no porvocar un caos dentro del sistema del aldelo

Lo primordial es hacerlo con mucho cuidado... ;):D:D
En serio, a parte de revisar el tutorial de Caral, lo básico que se me ocurre es que para no bloquear nada de lo que esté haciendo el programa:

1) Te asegures de que al conectar a la Base de Datos no sea de forma exclusiva.
2) Realizar consultas no debería provocar problemas, siempre que tengas en cuenta no sobrecargar el servidor. Para asegurarte más, si utilizas ADO, puedes hacerlos en modo ReadOnly.
3) para inserciones no utilices componentes DataAware, utiliza SQL.

De todas no es recomendable realizar este tipo de operaciones a no ser que estés totalmente seguro que las operaciones que haces, ya que si no conoces perfectamente la lógica del programa y las operaciones que hace, tus inserciones pueden provocar que corrompas la integridad de los datos o que el programa deje de funcionar.

Imagina que cada vez que el programa inserta en A, lo hace también en B. Si tú insertas en A y no sabes que hay que insertar en B, puede ser que procoques errores (no se si me explico).

richy08 15-04-2010 16:31:22

Cita:

Empezado por Neftali (Mensaje 360588)
Lo primordial es hacerlo con mucho cuidado... ;):D:D
En serio, a parte de revisar el tutorial de Caral, lo básico que se me ocurre es que para no bloquear nada de lo que esté haciendo el programa:

1) Te asegures de que al conectar a la Base de Datos no sea de forma exclusiva.
2) Realizar consultas no debería provocar problemas, siempre que tengas en cuenta no sobrecargar el servidor. Para asegurarte más, si utilizas ADO, puedes hacerlos en modo ReadOnly.
3) para inserciones no utilices componentes DataAware, utiliza SQL.

De todas no es recomendable realizar este tipo de operaciones a no ser que estés totalmente seguro que las operaciones que haces, ya que si no conoces perfectamente la lógica del programa y las operaciones que hace, tus inserciones pueden provocar que corrompas la integridad de los datos o que el programa deje de funcionar.

Imagina que cada vez que el programa inserta en A, lo hace también en B. Si tú insertas en A y no sabes que hay que insertar en B, puede ser que procoques errores (no se si me explico).

Gracias neftali y caral por sus comentarios lo de las insercciones ya lo tengo solucionado tengo ya un par de dias analizando la bd y corriendo el programa para identificar las tablas que necesito, mi preocupacion es que nunca he utilizado access siempre he trabajado con motores mas avanzados, con tus respuestas neftali me saltan varias dudas

Cita:

1) Te asegures de que al conectar a la Base de Datos no sea de forma exclusiva.
como puedo asegurarme de esto ??

Cita:

3) para inserciones no utilices componentes DataAware, utiliza SQL.
que es un componente dataaware??

una ultima duda que diferencia ahi entre usar transacciones desde delphi o mandar llamar querys que se encuentran dentro de access desde delphi como si fuera un procedimiento almacenado y como me recomiendan que lo haga mil gracias.

Neftali [Germán.Estévez] 15-04-2010 19:37:49

Cita:

Empezado por Neftali (Mensaje 360588)
1) Te asegures de que al conectar a la Base de Datos no sea de forma exclusiva.

Creo recordar que los MDB se pueden abrir en varios modos. Si no recuerdo mal cuando los abres con el Access desde el explorer lo hace en modo exclusivo. Para asegurarte basta con que pruebes a abrir la conexion desde dos programitas hechos en Delphi.

Cita:

Empezado por Neftali (Mensaje 360588)
3) para inserciones no utilices componentes DataAware, utiliza SQL.

Normalmente cuando nos referimos a controles Data Aware estamos pensando en controles de Base de Datos (DBEdit, DBGrid,...).
Pensaba en que hicieras las consultas utilizando un ADOQuery y SQL (INSERT...) y no con código vía APPEND/POST.
Tal vez no me expliqué bien del todo.

Cita:

Empezado por richy08 (Mensaje 360613)
una ultima duda que diferencia ahi entre usar transacciones desde delphi o mandar llamar querys que se encuentran dentro de access desde delphi como si fuera un procedimiento almacenado y como me recomiendan que lo haga mil gracias.

Yo utilizaría las transacciones y las consultas desde Delphi. Si hay alguna consulta muy compleja que ya tienes hecha y no quieres repetirla puedes ejecutarla como si fuera un Stored.

richy08 15-04-2010 20:16:57

entonces utilizare los insert desde delphi y no tenia pensado usar controles, ni sentencias hechas en access ya que le software es de una empresa diferente a la mia, gracias a los dos me han iluminado el camino creo que de aqui en adelante me toca a mi, estoy por terminar la interfaz :D espero y todo salga bien hasta la proxima mil gracias.


La franja horaria es GMT +2. Ahora son las 16:31:17.

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