FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Falla en los Insert de ADO
Hola,
Les escribo para solicitar su ayuda, mi problema es el siguiente. He desarrollado un equipo de biometria del cual leo las huellas que el mismo contiene. A medida que va llegando la informacion (huellas) las voy guardando en una DB Acces. A la misma accedo via ADO. Para hacer esto utilizo directamente el ActiveX provisto por Microsoft. El inconveniente surge a la hora de insertar el registro de las huellas en la tabla correspondiente. Abro el Recordset hago un AddNew le paso los datos de los campos, ejecuto un Update y por último cierro el Recordset. Grabo bien toda la data excepto el último registro el cual no genera error pero aveces se graba y aveces no. Es decir el Recordset no me devuelve ningun error al grabar este último registro pero, sin embargo, el registro no es agregado a la tabla. Este es el codigo (utilizo VB6 y ADO 2.8): Cita:
Última edición por Slash fecha: 18-05-2007 a las 22:55:28. |
#2
|
||||
|
||||
Visual basic? Huacala.
Pero bueno, solo conozco Vba, que es parecido, y noto que no estas haciendo el Post Veo en tu código que no haces el post de manera explicita, no será por eso que el último registro no se graba?, los anteriores si son grabados por que al invocar AddNew, se hace un post ímplicito de la edición (si existe) previa. Suerte
__________________
Conoce mi blog http://www.edgartec.com |
#3
|
|||
|
|||
Muchas Gracias por la respuesta y si... Vb Huacala debería ser el nombre de alguna version jajajaja.
Revise lo del post implicito y si bien es cierto, el Update que hago luego de pasar los campos debería hacer este trabajo. Lo que me parece mas raro es que si bien la falla es aleatoria cuando sucede no se me informa de ningun error. Lo he debugeado varias veces y el Update lo hace bien (al menos esto parece) pero el registro no es agregado a la tabla y no se me informa de nada. Si a alguien se le ocurre algo le agradecería que lo posteara por mas insignificante que parezca ya que comienzo a pensar que el error es tan tonto que no lo estoy viendo. Nuevamente Muchas Gracias. |
#4
|
||||
|
||||
El problema es que tienes 2 AddNew, uno al principio del bucle y otro al final.
El primero funciona bien, el último AddNew hay que quitarlo, ya que en la ejecución del bucle se llamará 2 veces y creará registros en blanco. El último registro no se graba por un pequeño detalle. Cuando estas insertando y se ejecuta un movimiento de registro (AddNew forzará un cambio de registro) El motor de bases de datos guardará automáticamente ese registro en curso. Sin embargo, cuando se está en el último registro de rehabilitados, no se puede avanzar de registro (eof es true), y entonces se omite ese guardado que ocurre entre movimientos de registros. Dos soluciones: - antes del "next" asociado al "for" llamar a Post. Esto hace que se ejecute por cada registro del bucle. - Sabiendo que el post es automático cada vez que se mueve de registro, fuera del bucle colocar un Rehabilitado.Post, ya que sabemos que al salir del bucle, ese último registro está en Edición y no se ha guardado. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#5
|
|||
|
|||
Ante todo muchisimas gracias por la ayuda. Paso a contarles que paso y como lo solucione.
Primero que nada el segundo AddNew que aparece en realidad debería ser un Update (equivale a post), Gracias Lepe... Sin embargo el error persistía y lo que encontre fue que la conexion tenia una transaccion iniciada que nunca era cerrada lo cual hacía que algunos Update no se llevaran a cabo, ademas no se generaba error porque el recordset estaba haciendo bien su trabajo era la conexion la que no estaba mandando el Commit a la base. Para solucionarlo, antes de empezar el ciclo inicie una transaccion y luego despues de terminada la carga realize un Commit. Saludos a todos y otra vez Gracias. Por cualquier prgunta no duden en mandarme mensajes. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
falla en división | mamaro | Firebird e Interbase | 11 | 12-02-2007 17:48:44 |
Falla al Modificar por 2ª vez | teletranx | Providers | 1 | 20-12-2005 20:04:45 |
Insert me cierra otro Insert | motrildelphi | Conexión con bases de datos | 0 | 05-05-2005 12:20:27 |
Falla una Dll (UDF) | teletranx | Firebird e Interbase | 1 | 21-12-2004 14:20:59 |
Que falla? | Caljim | Conexión con bases de datos | 7 | 16-09-2004 08:39:05 |
|