Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Como conectarme a firebird (https://www.clubdelphi.com/foros/showthread.php?t=48785)

santiago14 03-10-2007 23:52:03

Como conectarme a firebird
 
buen dia, estoy con una duda hoy.
Me conecto a mi bd, no tengo problemas en hacerla, ahora bien, ¿cual es la mejor manera o la forma recomendada de hacerlo?

1) Conectarme al principio de mi aplicacion (user y pass) y mantenerme conectado hasta que el usuario decida salir o,

2) Conectarme a la BD cada vez que el usuario quiera hacer algo en ella dentro de la aplicación.

Esto es porque estoy haciendo un software bastante complicado y tiene una gran interacción con BD. Uso Firebird 1.5 y componentes de conexión MDO (Mercury DataBase Object)

Gracias.

jhonny 04-10-2007 00:01:26

Bueno, si vas a tener mucha interacción con la BD creo que lo mejor es hacer una conexión persistente, que dure hasta que el usuario se quiera desconectar.

poliburro 04-10-2007 00:31:30

bueno, debes considerar además el número de usuarios, recuerda que al usar conexiónes persistentes, estás consumen determinados recursos de la base de datos. Evalua entonces, que tanto afectará el rendimiento, de acuerdo a la cantidad de usuarios simultaneos con conexiones persistentes.

duilioisola 04-10-2007 10:44:52

Supongo que lo más importante es el tema de transacciones.

Si abres una transacción y haces CommitRetaining de esta cada vez que quieres grabar, esto será como no cerrar la transacción nunca y se acumularán una sobre otra, hasta que se cierre la aplicación (o se haga el Commit final)

Lo que quiero decir es que deberás tratar de abrir y cerrar las transacciones siempre que puedas y usar el CommitRetaining lo menos posibe.

Como lema: La vida de la transacción debe ser lo más corta posible para que la base de datos o se degrade.

En mis aplicaciones yo conecto una sola vez al principio de la aplicación y hago una transacción por form. Esta transacción se abre y se cierra (Commit) con el form. Además, se van haciendo CommiRetaining para grabar los datos mientras el usuario entra o borra datos.

En procesos masivos, trato de hacer un commit por cada iteración. Por ejemplo contabilizar todas las facturas abiertas sería
Código:

While Facturas abiertas
  Transaction.StartTransaction
  Cerrar
  Transaction.Commit
end



La franja horaria es GMT +2. Ahora son las 09:19:15.

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