![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problema al comenzar transaccion
Hola a todos, estoy utilizando delphi 2010, windows 8 y los componentes de Interbase (TIBQuery,IBTransaction,TIBDatabase) alojados en un modulo de datos(dm) realizando una aplicacion que busque ciertos registros en base a un CAMPO y un VALOR que solicito al cliente, los muestro posteriorment en un grid, de la sig. manera
Hasta aqui todo sigue bien, despues de eso debo actualizar los registros no seleccionados, hice este procedimiento para lograrlo:
Al ser muchas querys a actualizar distintas la ejecuto así
Este lo uso dandole el valor de la query que voy armando en otra parte, el problema es el siguiente y por el cual pongo todo lo anterior: al llegar a la linea de la funcion, me da una violacion de acceso
Ya intenté hacerlo sin el procedure(digamos que escrito una y otra vez, en cada parte), ya probé duplicando los componentes de la base de datos(obviamente cambiando los nombres) y nada, sigo con el error de la violacion, tambien aparece si en esa linea o en el procedimiento pongo lo sig. :
alguien podria ayudarme? o darme alguna pista de por donde atacar el problema? Última edición por Neftali [Germán.Estévez] fecha: 17-07-2015 a las 08:56:07. Razón: corrección de formato |
#2
|
||||
|
||||
Ejecuta paso a paso el código.
Normalmemte el error de "Access Violation" da cuando utilizas un objeto que no está correctamente asignado.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
|||
|
|||
Fue el primer paso
Ejecuté paso a paso, todo va bien hasta llegar a esa linea, he hecho mas pruebas y llegando a la funcion, haga lo que haga, ya no puedo cerrar la transaccion, ya no me permite un commit, rollback, cerrar el dataset o incuso intentar cerrar el componente de la BD
¿Tendrá algo que ver con que el primer select fue mostrado en un dbgrid y no me permite cerrar la conexion? Estoy sacando chispas y no logro hacer funcionar algo relativamente "sencillo" ) : |
#4
|
||||
|
||||
Y cuando llega a esa línea, qué hace. ¿Por qué dices que no puedes cerrar la transacción?, ¿sale algún mensaje?, ¿qué error muestra?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#5
|
|||
|
|||
Mira
La cosa es esta
antes de llegar a esta linea (la que me muestra una violacion de acceso):
puse lo siguiente, para saber si es que estaba abierta
y sì. la muestra como activa comienza con el if, al llegar al commit, me da la misma violacion de acceso, por eso doy por hecho que es por la transaccion pero no estoy seguro, no entiendo del todo, he estado leyendo pero el procedimiento que uso en el select y en el update puestos al principio del post son mis unicas interacciones con la BD, no se cual podra ser el error |
#6
|
||||
|
||||
Mira qué tienes después del commit, entonces, paso a paso, hasta la línea que da el error.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#7
|
||||
|
||||
Hola cipce22.
Dos consultas:
Saludos ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#8
|
||||
|
||||
A ver si puede ser este el problema, en la prtimera linea de tu mensaje pones 'qsql:='select ......', luego llamas a UPDATE_f(dm.IBQuery1,sqql,'Error al actualizar HISTOMAT');
Saludos |
#9
|
|||
|
|||
Cita:
Al ir con el depurador paso a paso sí me detecta el valor de Form_Seleccion.campo_id_oficial, de hecho los he mostrado en un mensaje en pantalla antes de mandarlos a la funcion, tanto como la sentencia SQL y el valor de la variable si estan ahí : (, la sentencia sql tal cual la copie del mensaje y ejecute en ibexpert y funcionó. Estoy muy confundido he probado otras opciones, he creado otra transaccion (TIBTransaction) asosiada al mismo dataset(TIBquery) y a la misma BD (TIBDatabase), pero no la uso, solo lo he creado, al llegar a esta parte he intentado usar esa nueva transaccion y me la marca como ABIERTA, pero no he usado esta.... las sentencias del select y del update no son sobre la misma tabla ni estan ligadas en nada... hoy me tocas sufir con esto, llevo dias |
#10
|
|||
|
|||
Cita:
fue error de dedo, realmente si uso la variable qsql de tipo string : ( Gracias por responder jafera |
#11
|
||||
|
||||
Hola cipe22.
Dado que recibis un error Access Violation, apunto a que estas referenciando un objeto inexistente. Como para ir circunscribiendo el error, intentá hacer esta prueba:
Saludos ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#12
|
|||
|
|||
Cita:
revisando el codigo ¿Esta linea podria ser la culpable? Grid_sel es un gridview en el cual muestro el resultado del primer select, el cual voy a tratar, con esa linea pretendo desasociar el dataset al gridview ¿es correcto? |
#13
|
||||
|
||||
Hola cipce22.
Cita:
Otra consulta: ¿ Existe algún TDataModule en Auto-create forms o por código, cuya creación pudiera estar en órden posterior al uso de la función ? Saludos ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#14
|
|||
|
|||
Ayudaaaa
Cita:
Todos los form son auto-create, la aplicacion es pequeña. Despues de muchos intentos y busquedas, probando el codigo de la funcion update (que puse antes) en diferentes partes del codigo di con lo siguiente: La violacion de acceso se muestra solo despues de este barrido, incluso, si lo comento, la violacion de acceso no se presenta y todo funciona bien:
donde IBQuery1 es el dataset que utilice para la consulta SELECT, el cual es el source del grid.... de este dataset obtengo los valores de ID que modificare y los pongo en un arreglo dinamico para despues usarlos ¿alguien tiene idea de por qué este ciclo me genera una violacion de acceso despues? Tomando en cuenta que para el update utilizo otro dataset(TIBQuery) y otra tansaccion (TIBTransaction) |
#15
|
|||
|
|||
![]() Cita:
Al mover el orden una de mis forms no se logra mostrar y me muestra violacion de acceso, el form que lo provoca es el ultimo en ser mostrado y el ultimo en la lista ¿así debe ser? el error de el update continua ![]() |
#16
|
||||
|
||||
Yo revisaría esta parte:
Así a simple vista diría que tienes el problema ahí.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#17
|
||||
|
||||
Hola cipce22.
Opino igual que Casimiro, debería ser:
También lo podrías escribir de este modo (ahorrándote el contador):
Otra alternativa es darle al arreglo dinámico, el tamaño de una sola vez:
Saludos ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 21-07-2015 a las 19:04:50. |
#18
|
|||
|
|||
Funcionó
¡Funcionó!
![]() De alguna manera el cambiar este ciclo ya no generó la violación de acceso, ¿por qué la provocaba? no me mostraba ningun error ni mostraba alguna excepcion cuando lo ponia en un bloque try si alguien me explica esto ultimo, seria perfecto para poder evitar este error en el futuro, que para mi, es casi inexplicable ![]() Agradezco a todos la ayuda |
#19
|
||||
|
||||
Cita:
Lo habríamos visto al momento.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#20
|
|||
|
|||
![]() Cita:
![]() ![]() ![]() ![]() |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problema con transaccion | mierda | SQL | 0 | 05-05-2007 16:23:18 |
Problema con transaccion en SQL server | JuanchoArg | SQL | 2 | 13-12-2006 22:59:37 |
Problema con excepsión y transacción | mpedra | MS SQL Server | 8 | 11-04-2006 22:33:32 |
Problema con transaccion con IB | reina | Varios | 2 | 03-09-2005 02:40:11 |
Urgente - problema de insertar en tabla - Transaccion Activa | Patricio | Conexión con bases de datos | 2 | 27-06-2005 16:29:06 |
![]() |
|