FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour FW_DbfToHash() falla si el DBF está vacío.
Posts: 309
Joined: Wed Mar 28, 2018 04:38 PM
FW_DbfToHash() falla si el DBF está vacío.
Posted: Thu Mar 18, 2021 12:09 PM
Utilizo la versión 19.6 de Fivewin,
Este ejemplo da error si el DBF no contiene registros, considero que debería devolver un Hash en blanco.
No sé si en las nuevas versiones de Fivewin está solucionado, en caso contrario modificaría la función FW_DBFToArray() para solucionarlo.

Code (fw): Select all Collapse
#include "fivewin.ch"


FUNCTION Main()

    Local fTest:='fTest'

    DbUseArea( .T.,, "TestVacio",fTest)
    xBrowse( fTest->(FW_DbfToHash( ) ) )
  
RETU NIL


Gracias y Salud!
--------

¿ Y porque no ?

¿ And why not ?
Posts: 309
Joined: Wed Mar 28, 2018 04:38 PM
Re: FW_DbfToHash() falla si el DBF está vacío.
Posted: Thu Mar 18, 2021 01:42 PM
Modificando ArrToHash() de valtostro.prg me ha funcionado:

Code (fw): Select all Collapse
// ------------------------------------
   if aData:Empty()
      hRet := {=>}
   elseif HB_ISARRAY( aData[ 1 ] )
// ------------------------------------
--------

¿ Y porque no ?

¿ And why not ?
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: FW_DbfToHash() falla si el DBF está vacío.
Posted: Fri Mar 19, 2021 09:31 PM

FW_DbfToHash() returns an array of hashes, but not a hash.

So in the case of empty dbf, it should return an empty array, not an empty hash.

Yes, we need to fix the function to avoid this runtime error.

Regards



G. N. Rao.

Hyderabad, India
Posts: 309
Joined: Wed Mar 28, 2018 04:38 PM
Re: FW_DbfToHash() falla si el DBF está vacío.
Posted: Mon Mar 22, 2021 07:21 PM
Thanks!
then, I think that a good solution is:
Code (fw): Select all Collapse
// ------------------------------------
   if aData:Empty()
      hRet := Array( 0 )
   elseif HB_ISARRAY( aData[ 1 ] )
// ------------------------------------
--------

¿ Y porque no ?

¿ And why not ?

Continue the discussion