FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Comitar transacciones con DBExpress, Delphi 6 y Firebird
Buenas tardes
Tengo un sistema al cual he codificado durante ya casi 3 años y ahora que segun yo casi esta terminado me doy cuenta de lo siguiente. Utilizo DBExpress con Firebird, no se hasta que punto sean compatible, esto debido a que si creo un proceso que importe informacion en el cual estoy haciendo un applyupdates y terminando una transaccion que tenia iniciada, en mi PC que es una PC digamos buena, todo trabaja bien, pero cuando ya realizo un proceso de migracion de 10000 o mas registros veo que Windows disminuye su numero de memoria paginada, esto al punto en que si la maquina tienen poco espacio en HD el sistema deja de comitar las transacciones y no se almacena la informacion. Cuando empese a programar en la aplicacion probe el volumen, y no pasaba esto, pero siempre comitaba hasta el final de cargar todos los 10000 o 20000 registros. Creo que mi error debe estar al comitar la transaccion, pero no se que se tienen que hacer en DBExpress para que la transaccion se libere y pueda iniciar otra, no se si alguien cuenta con un ejemplo de como almacenar datos con DBExpress y Firebird, ahorita estoy con el apuro ya que no se si hay alguien como yo que tenga aplicaciones en donde manejan volumen de datos y utilicen DBExpress si hay alguien que use DBExpress le agradeceria si me puedo poner en contacto para compartir tips del componente, me queda claro que no es firebird el que falla, porque puedo abrir la aplicacion N veces y crear datos simultaneamente. Sin mas me despido y espero alguien cuente con informacion para compartir. |
#2
|
||||
|
||||
ciclo de transaccciones
Hola César.
No sé porque tengas esas clases de errores. Pero prueba estó, dando por hecho que asi tengas el módulo de migración. Código:
numREg <-- 1; te conectas al dataset [DSOrigen](DB, archivo plano, xml) donde deseas importar. mientras no sea DS.Origen.eof numreg <--- numreg <--- 1 DSDestino.insert; DsDEstino.FieldByname(X).AsValue := DsOrigen.FieldByname.Asvalue; DsDestino.post; SI numreg = 1000 (VALOR NO TAN CRITICO) DSDestino.close; TRASACCION.COMMIT; DSDestino.open; numreg <--- 0; FIN SI DSOrige.next FIN MIENTRAS DSDestino.close; TRASACCION.COMMIT; Si no, comentanos más el problmas que tienes, a lo mejor no estas haciendo commit, sino commitretaining y dejes muchas cosas abiertas.
__________________
Estudia y anda en la calle.... que asi serás el doble de listo que los demás... análisis de información análisis y diseño de sistemas Paoti Rios Reséndiz |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problemas con las Transacciones en Firebird 1.5 y Delphi 2005 | Jesús Pena | Firebird e Interbase | 3 | 08-04-2006 21:10:15 |
Transacciones FireBird con Zeos | vichovi | Conexión con bases de datos | 3 | 13-07-2005 08:49:29 |
Gestión de transacciones manuales con dbExpress | rudinger | Conexión con bases de datos | 1 | 09-03-2005 17:48:22 |
Transacciones en FireBird | El_Raso | Firebird e Interbase | 1 | 26-11-2004 16:22:04 |
DbExpress - Transacciones - más de un clientDataSet | carlosmari | Conexión con bases de datos | 7 | 29-09-2003 20:07:54 |
|