Saludos cordiales:
Me gustaría que alguno me explicara, porque debe tener una explicación, que significado tiene está frase que Juan ha destacado para los Argentinos, debe tener un significado distinto del que tiene en España,
Juan destaco >> es el que tienes cogido en la otra Sub-data y después aseveró Realmente usted no le hace asco a nada. Todo esto me da a entender que mi frase asilada debe de significar algo diferente para ustedes los argentinos que para los españoles y por eso mi curiosidad.
Cuando la puse quise decir el registro y por eso refiriéndome a él la puse, podía haber puesto, “el registro que tienes cogido en la sub_data”, pero quizás Juan me hubiera respondido de la misma forma, porque el significado para él sea el mismo.
Lo importante es que le hice pensar a Gerardo que quizás si liberaba los registros antes de llamar a la otra ventana con la misma base de datos, se le solucionaba el problema y así fue y de paso él me lo solucionó a mi porque yo arreglé lo mismo en otro programa en el cual había sustituido unas de las subdatas por una ListView.
De: guvoaII@... [mailto:guvoaII@...] En
nombre de Juan Francolino
Enviado el: sábado, 31 de
diciembre de 2005 16:13
Para: guvoaII@...
Asunto: RE: [guvoaII] Borrar
registros.
Hola Gerardo,
>> es el que tienes cogido en la otra Sub-data
Realmente usted no le hace asco a nada.
Un abrazo y un feliz año 2006 para todos los integrantes de la lista.
Juan
De: guvoaII@... [mailto:guvoaII@...] En
nombre de José Ramón Castro
Enviado el: Sábado, 31 de
Diciembre de 2005 10:51 a.m.
Para: guvoaII@...
Asunto: RE: [guvoaII] Borrar
registros.
Saludos Gerardo:
Has comprobado que ese que no borra es el que tienes cogido en la otra Sub-data o seleccionado para hacer la búsqueda de borrar o es otro registro diferente es que eso llevaría consigo que mientras no liberes ese registro no lo va a marcar para borrar. Eso ya me pasó a mí utilizando la misma base de datos en dos Subdatas con diferentes campos, la solución una ListView que tenía los campos de una de la subdatas de esa forma la base de datos solo estaba abierta en una sola estancia y no en dos.
De: guvoaII@... [mailto:guvoaII@...] En
nombre de Gerardo J. Biagiotti
Enviado el: sábado, 31 de
diciembre de 2005 13:21
Para: guvoaII@...
Asunto: RE: [guvoaII] Borrar
registros.
Gustavo, puse el contador.
Pasa por todos los registros, pero el último no lo borra.
Gerardo J. Biagiotti
Analista de Sistemas
(2580) Marcos Juárez
Córdoba - Argentina
Mail: gjbiagiotti@...
MSN: gerardo_biagiotti@...
gjbiagiotti@...
gjbiagiotti@...
De: guvoaII@... [mailto:guvoaII@...] En
nombre de Gustavo Biasone
Enviado el: Viernes, 30 de Diciembre
de 2005 08:07 p.m.
Para: guvoaII@...
Asunto: Re: [guvoaII] Borrar
registros.
Agregale un contador, a ver si realmente procesa los 4 registros o no...
n := 0
SELF:oDb_MoviClie:Seek(Str(SELF:mCODCLI_RCL,6)+SELF:mNROREC_RCL)
DO WHILE !SELF:oDb_MoviClie:EOF .AND. SELF:mNROREC_RCL=SELF:oDb_MoviClie:NRECIB_MCL
IF RLOCK()
SELF:oDb_MoviClie:Delete()
n ++
ELSE
Infobox{,"El registro no se puede bloquear:"}:Show()
ENDIF
SELF:oDb_MoviClie:Skip()
ENDDO
Infobox{,"Registros borrados:" + AsString(n) }:Show()
GB
----- Original Message -----
From: Gerardo J. Biagiotti
To: guvoaII@...
Sent: Friday, December 30, 2005 5:20 PM
Subject: RE: [guvoaII] Borrar registros.
Gustavo, hice lo siguiente:
SELF:oDb_MoviClie:Seek(Str(SELF:mCODCLI_RCL,6)+SELF:mNROREC_RCL)
DO WHILE !SELF:oDb_MoviClie:EOF .AND. SELF:mNROREC_RCL=SELF:oDb_MoviClie:NRECIB_MCL
IF RLOCK()
SELF:oDb_MoviClie:Delete()
ELSE
Infobox{,"El registro no se puede bloquear:"}:Show()
ENDIF
SELF:oDb_MoviClie:Skip()
ENDDO
No aparece el mensaje, pero tampoco borra el último registro, o sea, que si son 4 borra 3, a pesar de estar bloqueados los registros.
Gerardo J. Biagiotti
Analista de Sistemas
(2580) Marcos Juárez
Córdoba - ArgentinaMail: gjbiagiotti@...
MSN: gerardo_biagiotti@...
gjbiagiotti@...
gjbiagiotti@...
De: guvoaII@... [mailto:guvoaII@...] En nombre de Gustavo Biasone
Enviado el: Viernes, 30 de Diciembre de 2005 01:53 p.m.
Para: guvoaII@...
Asunto: Re: [guvoaII] Borrar registros.
Lo que quise decir es que si estas usando "optimistic locking" (por defecto), todo el proceso de bloqueo lo realiza automaticamente VO.
No recuerdo bien ya que hace tiempo que no uso esa tecnica, pero me parece que el registro en el cual esta posicionado el puntero permanece bloqueado. Entonces al tener 2 ventanas con el mismo server abierto, cuando intentes borrar desde una de ellas solamente vas a poder hacerlo con los registros que no estan bloqueados.
No se si soy claro, se entiende?
Para probar lo que te estoy diciendo, intenta poner una InfoBox dentro del loop donde borras los registros. Algo asi:
// Esto es pseudo codigo.....
do while ...
if rlock()
delete
else
Infobox{,"El registro no se puede bloquear:" + nombreregistro}:Show()
endif
GB
----- Original Message -----
From: Gerardo J. Biagiotti
To: guvoaII@...
Sent: Friday, December 30, 2005 12:42 PM
Subject: RE: [guvoaII] Borrar registros.
Pero porqué de 4 registros borra 3????
Si el problema estaría en no bloquear el registro a borrar, no debería borrar ninguno.
Gerardo J. Biagiotti
Analista de Sistemas
(2580) Marcos Juárez
Córdoba - ArgentinaMail: gjbiagiotti@...
MSN: gerardo_biagiotti@...
gjbiagiotti@...
gjbiagiotti@...
De: guvoaII@... [mailto:guvoaII@...] En nombre de Gustavo Biasone
Enviado el: Viernes, 30 de Diciembre de 2005 12:33 p.m.
Para: guvoaII@...
Asunto: Re: [guvoaII] Borrar registros.
El problema podria ser el abrir las bases con CCOPTIMISTIC y no bloquear el registro a borrar (RLock).
GB
----- Original Message -----
From: Gerardo J. Biagiotti
To: guvoaII@...
Sent: Friday, December 30, 2005 10:58 AM
Subject: RE: [guvoaII] Borrar registros.
Tampoco anda.
Gerardo J. Biagiotti
Analista de Sistemas
(2580) Marcos Juárez
Córdoba - ArgentinaMail: gjbiagiotti@...
MSN: gerardo_biagiotti@...
gjbiagiotti@...
gjbiagiotti@...
De: guvoaII@... [mailto:guvoaII@...] En nombre de Piazza Sistemas
Enviado el: Viernes, 30 de Diciembre de 2005 10:04 a.m.
Para: guvoaII@...
Asunto: Re: [guvoaII] Borrar registros.
No probaste usar SuspendNotification() / ResetNotification()?
----- Original Message -----
From: Gerardo J. Biagiotti
To: guvoaII@...
Sent: Thursday, December 29, 2005 8:17 PM
Subject: RE: [guvoaII] Borrar registros.
Esto que proponen Claudio y Fernando es la segunda prueba que hice antes de enviar la consulta al grupo.
Hoy he podido ver lo siguiente:
Tengo 2 ventanas (vCobranza y vRecibos). vCobranza abre la base MoviClie.DBF, el operador selecciona las facturas a cancelar y tras aceptar invoca a la ventana vRecibos que también abre la base MoviClie.DBF.
Si el operador cancela la emisión del recibo, en vRecibos, borro los datos del recibo generado en vCobranza. Aquí es donde borro los registros del recibo cancelado. Y es donde aparece el problema, si hay 4 registros borra 3.
Hasta este punto las 2 ventanas tienen abierta la base MoviClie.DBF, pero si en vCobranza cierro la base Moviclie.DBF y luego llamo a vRecibos, así sí se borran todos los registros, es decir que si la ventana que invoca a vRecibos tiene abierta la misma base de datos no se borran todos los registros.
Porqué este comportamiento????
Gerardo J. Biagiotti
Analista de Sistemas
(2580) Marcos Juárez
Córdoba - ArgentinaMail: gjbiagiotti@...
MSN: gerardo_biagiotti@...
gjbiagiotti@...
gjbiagiotti@...
De: guvoaII@... [mailto:guvoaII@...] En nombre de Piazza Sistemas
Enviado el: Jueves, 29 de Diciembre de 2005 07:40 p.m.
Para: guvoaII@...
Asunto: Re: [guvoaII] Borrar registros.
Si, tal cual Gerardo, yo uso la misma tecnica. Más bien hago así:
DO WHILE TRUE
IF SELF:oDb_MoviClie:Seek( sKey )
SELF:oDb_MoviClie:Delete()ELSE
EXIT
ENDIF
ENDDO
Pero es lo mismo.
--------------------------------------------------------------
Fernando Piazza
Coronel Suárez
República Argentina
e-mail: soporte@...----- Original Message -----
From: Claudio Torrillo
To: guvoaII@...
Sent: Thursday, December 29, 2005 4:44 PM
Subject: Re: [guvoaII] Borrar registros.
Cambia por:
sKey := Str(SELF:mCODCLI_RCL,6)+SELF:mNROREC_RCL
DO WHILE SELF:oDb_MoviClie:Seek( sKey )
SELF:oDb_MoviClie:Delete()
ENDDO
Seguro no falla
Claudio Torrillo
www.xcsa.com.ar
Feliz 2006!!!
--- "Gerardo J. Biagiotti"
<gjbiagiotti@...> escribió:
> La siguiente secuencia me permite eliminar registros
> de los movimientos de
> clientes, relacionados con un número de recibo.
>
> La cantidad de registros a borrar, del mismo recibo,
> pueden uno o más.
>
> Pero sucede que siempre deja el último sin borrar,
> es decir, que si hay 5
> registros con el mismo número de recibo, borra 4 y
> el último no lo borra.
>
>
>
> lDelete=SetDeleted(FALSE)
>
>
SELF:oDb_MoviClie:Seek(Str(SELF:mCODCLI_RCL,6)+SELF:mNROREC_RCL)
>
> DO WHILE !SELF:oDb_MoviClie:EOF .AND.
> SELF:mNROREC_RCL=SELF:oDb_MoviClie:NRECIB_MCL
>
> SELF:oDb_MoviClie:Delete()
>
> SELF:oDb_MoviClie:Skip()
>
> ENDDO
>
> SetDeleted(lDelete)
>
>
>
> Lo probé con el SetDeleted(FALSE) y sin él.
>
>
>
> A qué se debe este problema??
>
>
>
> Gerardo J. Biagiotti
> Analista de Sistemas
> (2580) Marcos Juárez
> Córdoba - Argentina
>
> Mail: gjbiagiotti@...
> MSN: gerardo_biagiotti@...
> gjbiagiotti@...
> gjbiagiotti@...
>
>
>
>
Claudio G. Torrillo
www.clipsupp.com.ar
___________________________________________________________
1GB gratis, Antivirus y Antispam
Correo Yahoo!, el mejor correo web del mundo
http://correo.yahoo.com.ar