FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
IB6 y ADO (transacciones)
Hola nuevo foro:
Quisiera retomar un tema que quedó pendiente en los foros anteriores... Les cuento nuevamente. tengo una aplicación en Delphi5, con ADO y me conecto a una BD MSSQL7. Convertí mi BD a IB6 y con la misma app. (mediante ADO) me conecto usando un provider Oledb, hasta aqui todo bien.... El problema surge con las transacciones que abre IB, transacciones implícitas, ya que no se como cerrarlas (aceptarlas o anularlas). No es que desde la app. abra una transacción, sino que es la manera de trabajar de IB, que para cada consulta (lectura, borrado o actualización) comienza implicitamente una transacción.... Estas transacciones producen el bloqueo de los registros cuando acceden varios usuarios a la BD, por lo que es imposible seguir trabajando.... Tengo la duda si para solucionar este problema (si es que se puede solucionar) se deba hacer algo en la app. o configurar la BD. En la BD tengo la opción AutoCommit (o algo asi), pero no estoy sefuro por donde vaya el problema, en realidad recién estoy comenzando en IB. Cualquier ayuda, guia, luz, etc. se agradece enormemente... SAludos LBP |
#2
|
||||
|
||||
Re: IB6 y ADO (transacciones)
Hola,
Cita:
Cita:
No utilizo ADO, pero me da la impresión que es un problema de cómo estás configurando los componentes ADO para acceder al servidor. Saludos. |
#3
|
|||
|
|||
Hola a todos:
Gracias Kinobi por contestar, siempre al rescate... En realidad el problema que se presenta es un problema de actualización "deadlock-update conflicts with concurrent update", y este se produce cuando un usuario intenta modificar un registro que fué modificado por otra aplicación, sin haber abierto desde la app. ninguna transacción, es decir, las transacciones que genera el servidor (arq. multigeneracional) no se cierran una vez realizados los cambios, o bien, cada conexión genera una transacción antes de siquiera leer algun registro. Pregunta: ¿es necesario que las aplicaciones se conecten a la BD con distinto nombre de usuario? Bueno a seguir machacando, o ¿son muy incompatibles ADO e IB? Saludos y Gracias nuevamente... Luis Briceño |
#4
|
|||||
|
|||||
Hola,
Cita:
Cita:
Cita:
Cita:
Cita:
Saludos. |
#5
|
|||
|
|||
No he usado Ado contra Interbase, pero existe el método BeginTrans para el componente AdoConnection. Solía encerrar procesos que pudieran crear conflictos en bucles de reintentos con mensajes (esto a gusto del consumidor). Se intenta hacer un committrans y si no se puede, se hace un rollback y de nuevo a empezar. Siento lo poco preciso de mi comentario pero ya hace un tiempo que no lo hago y además fue con SQL-server, que es de Microsoft y supongo más compatible con Ado. No sé como se entenderán Interbase y ADO. Un saludo,
|
#6
|
|||
|
|||
Hola nuevamente:
Gracias por sus comentarios. Con respecto a las transacciones que arranca el cliente mediante un llamado a la API de IB, ¿como las puedo manejar?, ya que no se registran en el ADoConnection, al verificarlo con la propiedad InTransaction, me indica que no he comenzado ninguna trans. (como cuando se utiliza el método BeginTrans). He probado efectuar cualquier lectura (borrado o actualización) de algún registro dentro de una Trans. explícita (es decir usando beginTrans,CommitTrans, RollBackTrans), pero me arroja los mismos resultados... he intentado enviarle el comando Commit a través de un ADOCommand, pero me arroja un error desconocido.... ¿Puede ser un problema del Provider (configuración) que utilizo (IBOleDb de Oledb.net)?, quizás me falta algún parámetro o algo????? Bueno, hay que seguir hincándole el diente Gracias nuevamente Luis Briceño |
#7
|
|||
|
|||
Hola a todos:
Bueno, era lo que me esperaba..... He encontrado otros providers por la red y de momento hay un par que me soluciona este problema y hasta ahora funcionan bastante bien. Quizás debiera haber empezado por ahi.... ... sin duda, valió la pena para aprender sobre el manejo de las transacciones y otras características de IB, que en realidad no sabia nada.... (gracias a unos documentos de mr. Kinobi) Gracias nuevamente y estamos en contacto Salud...os Luis Briceño |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Delphi 6 - ADO y Transacciones Anidadas | unoccio | Conexión con bases de datos | 3 | 28-08-2007 05:23:34 |
DBGrid y Transacciones ADO | Johnny Q | Conexión con bases de datos | 8 | 07-10-2005 22:53:10 |
ADO con Transacciones y BatchUpdate | hgiacobone | Tablas planas | 0 | 09-05-2005 22:50:31 |
Ado y transacciones | LucianoRey | Conexión con bases de datos | 6 | 15-04-2005 23:21:30 |
es bueno Ado para transaccion distribuida ? | redlyon13 | Conexión con bases de datos | 1 | 22-05-2004 04:09:23 |
|