Retrieve and update

Hago unr etrieve de un dw, luego le doy un deleterow y al darle el update me sale un mensaje 'Row changed between retrieve and update'. ¿Por qué puede ser?.
Respuesta
1
trata colocando el siguiente código antes del update.
tu_dw.acceptText()
Nunca vayas a colocar este código en el evento ItemChanged de la DataWindow.
Si no te funciona me cuentas, para ver que más se me ocurre.
La verdad es que me parece bastante extraño tu error aunque cnfieso que a mi me ha sucedido, el problema es que no recuerdo como lo he solucionado, yo tengo el código así:
dw_1.deleteRow(dw_1.getRow())
dw_1.acceptText()
dw_1.update()
Has revisado las propiedades de la datawindow, Rows --> Update Properties.
¿Desde qué evento estás ejecutando este código?
Que estés bien y quedo atento a tus comentarios para ayudarte con este problemilla...
Hola Andagui,
Intenté lo que me comentaste sin embargo sigue sucediendo lo mismo.
El único código que tengo
es dw_1.deleterow(row) y luego dw_1. update(). ¿Qué podrá ser?
Gracias por tu ayuda.
Saludos,
Alexandra
Hola,
Mira yo tenia el delete y el update en eventos de usuario, luego hice un simple botón en el que están exactamente las instrucciones que escribiste. En cuanto a las update properties ya he hecho todas las combinaciones posibles y nada. Lo único raro que tiene mi datawindow es que está en un tab. Ya no sé que hacer :(. Gracias
La verdad es que he estado tratando de recordar por qué sale este error, pero no logro dar con el detalle.
No se si ya has intentado creando de nuevo el DW. A veces esto me a funcionado cuando no se que hacer con algún error, no es lo mejor, pero por ahora no logro recordar por qué es que sale este error, sorry... que estés bien y ojalá puedas solucionar este incomodo inconveniente.

1 respuesta más de otro experto

Respuesta
1
PB cuando arma la sentencia que manda al dbms incluye condiciones en el where según la configuración que le hayas dado a la dw.
En el painter en las update properties fijate que la condicion del where este como "PK only".
Esta es posiblemente la solución, aun así este error a veces me salia a mi por otro tema que es más complicado.
Hola Aldob, verifiqué las update properties de mi datawindow y están en PORQUE Only, aún así me sigue saliendo el mismo error. Ya no sé que hacer. :(
Saludos,
Alexandra
¿Qué DBMS usas?
¿Haces algo con los datos después del retrieve?
Anda al evento sqlpreview y pone un messagebox con el sqlsyntax cuando haga delete y fíjate como esta armando el where.
AldoB
Aldob, te cuento que ya descubrí el error al pintar el sqlsyntax como me lo sugeriste. El problema es que la tabla de la que está hecha el dw tiene un campo numeric(28) identity que hace parte de la llave, cuando este valor se hace muy grande el dw no alcanza a tomar el valor completo del campo y por eso no encuentra cual es la fila que se está borrando. Ya se cambió la tabla y no se presenta más el problema. Gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas