FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Vaciar tabla secuencialmente.
Posts: 601
Joined: Wed Jul 04, 2007 03:51 PM
Vaciar tabla secuencialmente.
Posted: Sun Jan 25, 2009 03:13 PM
Hola a todos...
Tengo un problemita en el borrado de registros de una tabla cuando los borro de manera secuencial...

Lo estoy haciendo asi:
oDbfIng:GoTop()
DO WHILE !oDbfIng:Eof()
   oDbfIng:RecLock()
   oDbfIng:Delete()
   oDbfIng:UnLock()
   oDbfIng:Skip()
ENDDO


El problema es el siguiente: Borra pero siempre me deja un registro. Por ejemplo si tengo 10 registros en la tabla borra 9, si tengo 100 borra 99, etc...
Solo funciona correctamente cuando la tabla contiene 1 solo registro, es decir el registro se borra correctamente.
Cual puede llegar a ser el problema?? Me parece muy simple esa rutinita como para que no funcione bien :-)

Nota: El registro que no se borra es el útimo de la tabla, no el primero.

Desde ya muchas gracias.
Saludos, desde Argentina Esteban.
Ojeda Esteban Eduardo.

Buenos Aires - Argentina.

FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport

Skype: jreduojeda
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Vaciar tabla secuencialmente.
Posted: Sun Jan 25, 2009 04:10 PM

Esteban:

Y por qué no usar DBZAP() ???

Saludos

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 601
Joined: Wed Jul 04, 2007 03:51 PM
Re: Vaciar tabla secuencialmente.
Posted: Sun Jan 25, 2009 11:03 PM
No uso DBZap() porque en este proceso no puedo abrir la tabla en modo exclusivo.

De todas maneras quedó solucionado de la siguiente manera:

SET DELETED OFF
oDbfIng:GoTop()
DO WHILE !oDbfIng:Eof()
   oDbfIng:RecLock()
   oDbfIng:Delete()
   oDbfIng:UnLock()
   oDbfIng:Skip()
ENDDO
SET DELETED ON


Gracias de todas formas.
Ojeda Esteban Eduardo.

Buenos Aires - Argentina.

FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport

Skype: jreduojeda

Continue the discussion