FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour TDatabase Method delete()
Posts: 731
Joined: Fri Oct 07, 2005 07:42 AM
TDatabase Method delete()
Posted: Thu Aug 12, 2010 11:08 AM
No se porque este method ha cambiado de;

Code (fw): Select all Collapse
METHOD _Delete() CLASS TDataBase

   if ::lShared
      if ::Lock()
         ( ::nArea )->( DbDelete() )
         ::Commit()
         ::UnLock()
      else
         MsgAlert( "DataBase in use", "Please try again" )
      endif
   else
      ( ::nArea )->( DbDelete() )
   endif

return nil


A este parte de esta porción de este peligroso código;
Code (fw): Select all Collapse
  
   .... 
    if lDeleted
         if Set( _SET_DELETED ) // .or. ! Empty( ( ::nArea )->( DbFilter() ) )
            ::Skip( 1 )
            if ::Eof()
               ::GoBottom()
            endif
         endif
      endif


¿ Y ese ::SKIP( 1 ) ?

Por mi parte, SIEMPRE acostumbro a, por poner un ejemplo;
Code (fw): Select all Collapse
 while !oDbf:Eof()
         oDbf:Delete()
         oDbf:Skip()
 end while


Así, usando la clase de la última versión, VEO, que hay registros QUE NO SE BORRAN, y todo tiene que ver por el ::SKIP(1 ).
¿ No seria mejor poner un ::SKIP( 0) ?

Lo dicho , ignoro el motivo de ese SKIP, pero el borrar un registro, no debería implicar un salto de registro.
Saludos

Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: TDatabase Method delete()
Posted: Fri Aug 13, 2010 03:39 PM

TDataBase class purposefully retains the functionality of RDD.

Regards



G. N. Rao.

Hyderabad, India

Continue the discussion