![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
mightydragonlor, estoy de acuerdo con lo que dices pero podrias hacerme un favor... Enseñame como lo hago. Te Agradeceria.
![]()
__________________
Quien sabe y no lo aplica ... no sabe nada |
|
#2
|
||||
|
||||
|
Hola
Yo no creo que sea una sana opcion. Abrir la conexion, hacer lo que se necesite y cerrarla me parece muy tosco, por decirlo de alguna manera. Lo que si es logico es abrir y cerrar las tablas, no la conexion con la BD, son cosas diferentes. Saludos
__________________
Siempre Novato |
|
#3
|
||||
|
||||
|
bueno, la opción correcta("a mi parecer") sería usar procedimientos almacenados y vaciar los datos en un TClientDataSet, así de ser necesario capturas los cambios y los envías uno a uno a la base de datos, también usando procedimientos almacenados, hace un buen rato no trabajo con delphi, ahora estoy mas en el lado de lazarus, pero hay un componente de "TIBConnection", este trae una propiedad "KeepConnection := False" por defecto, esto hace que una vez se deje de usar la conexión la cierra, podrias ver si los componentes que usas para conectar a la base de datos trae algo parecido.
Cita:
__________________
mas confundido que Garavito el día del Niño. |
|
#4
|
||||
|
||||
|
Cita:
Pues cuando quieras abrir la conexión llamas a Cn.Open, entonces haces lo que debes hacer y cuando hayas terminado cierras la conexión con Cn.Close. Ejemplo : Cn.Open. qryFacturarAlbaranes.ExecQuery; Cn.Close; Ahora bien, te vas a encontrar con varios problemas. Los componentes que utilizas necesitan la conexión abierta y la transacción abierta para tener abierto un Dataset (y poder mostrar datos en una Grid, pro ejemplo). Así que tienes que hacer lo que dice mightydragonlor, es decir, trabajar con ClientDatasets. De forma que tu Dataset estará almacenado en un ClientDataset (en memoria local de la maquina cliente) de manera que puedes cerrar perfectamente la conexión con la base de datos, y no necesitarás volver a conectarla hasta que no quieras trasladar con un ApplyUpdates los cambios (altas, bajas, modificaciones, ...) que se hayan hecho en el ClientDataset. Cn.Open; ClientdatasetClientes.Open; Cn.Close; ... ... ... Luego cuando quieras guardar cambios : Cn.Open; ClientdatasetClientes.ApplyUpdates(0); Cn.Close; NOTA: Trabajar así es laborioso, pero si tu red inalámbrica se cae tanto como dices, entonces parece que no tienes otro remedio. Busca como dice mightydragonlor, a ver si tu componente de conexión tiene un propiedad KeepConnection, Timeout, ... que cierre automáticamente la conexión si no se utiliza (aunque naturalmente, para ello debes asegurarte de no mantener Datasets abiertos, y para ello los tienes que pasar todos a ClientDatasets).
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|