Hi,
I need to modify behavior a function. I use the next code... but is a bit
ugly... something alternative ?
Anything future inconveniences ?

Regards

INI CODE >>>>>>>>>>>>
//-------------------------------------------------------------------------/
/
FUNCTION OrdListAdd(cPathFile)
Local cPathDbf
Local cPathFile2:= cPathFile
Local cNtx
*
cPathDbf:= PathFile( DbInfo(DBI_FULLPATH) )
cNtx:= FileNoPath(cPathFile)
cPathFile2:= cPathDbf+ "\"+ cNtx
RETURN ORDLISTADDBIS(cPathFile2)
*
*
*
#IFDEF __HARBOUR__
   #IFNDEF __XHARBOUR__
      #PRAGMA BEGINDUMP
         #include "hbapi.h"
         #include "hbapirdd.h"
         #include "hbapierr.h"
         #include "hbapiitm.h"
         #include "hbvm.h"
         #include "hbset.h"
         HB_FUNC( ORDLISTADDBIS )
         {
            AREAP pArea = ( AREAP ) hb_rddGetCurrentWorkAreaPointer();
            if( pArea )
            {
               DBORDERINFO pOrderInfo;
               HB_ERRCODE errCode;
               /* Clipper clears NETERR flag when index is open */
               hb_rddSetNetErr( FALSE );
               memset( &pOrderInfo, 0, sizeof( DBORDERINFO ) );
               pOrderInfo.atomBagName = hb_param( 1, HB_IT_STRING );
               pOrderInfo.itmOrder    = hb_param( 2, HB_IT_STRING );
               if( !pOrderInfo.atomBagName )
               {
                  if( ! HB_ISNIL( 1 ) )
                     hb_errRT_DBCMD( EG_ARG, EDBCMD_ORDLSTADD_BADPARAMETER,
NULL, HB_ERR_FUNCNAME );
                  return;
               }
               pOrderInfo.itmResult = hb_itemNew( NULL );
               errCode = SELF_ORDLSTADD( pArea, &pOrderInfo );
               if( !pOrderInfo.itmResult ||
HB_IS_NIL( pOrderInfo.itmResult ) )
                  hb_retl( errCode == HB_SUCCESS );
               else
                  hb_itemReturn( pOrderInfo.itmResult );
               hb_itemRelease( pOrderInfo.itmResult );
            }
            else
               hb_errRT_DBCMD( EG_NOTABLE, EDBCMD_NOTABLE, NULL,
HB_ERR_FUNCNAME );
         }
      #PRAGMA ENDDUMP
   #ELSE
      #PRAGMA BEGINDUMP
         #include "hbapi.h"
         #include "hbapirdd.h"
         #include "hbapierr.h"
         #include "hbapiitm.h"
         #include "hbvm.h"
         #include "hbset.h"
         HB_FUNC( ORDLISTADDBIS )
         {
            HB_THREAD_STUB
            AREAP pArea = ( AREAP ) hb_rddGetCurrentWorkAreaPointer();
            if( pArea )
            {
               DBORDERINFO pOrderInfo;
               ERRCODE errCode;
               /* Clipper clears NETERR flag when index is open */
               hb_rddSetNetErr( FALSE );
               memset( &pOrderInfo, 0, sizeof( DBORDERINFO ) );
               pOrderInfo.atomBagName = hb_param( 1, HB_IT_STRING );
               pOrderInfo.itmOrder    = hb_param( 2, HB_IT_STRING );
               if( !pOrderInfo.atomBagName )
               {
                  if( !ISNIL( 1 ) )
                     hb_errRT_DBCMD( EG_ARG, EDBCMD_ORDLSTADD_BADPARAMETER,
NULL, "ORDLISTADD" );
                  return;
               }
               pOrderInfo.itmResult = hb_itemNew( NULL );
               errCode = SELF_ORDLSTADD( pArea, &pOrderInfo );
               if( !pOrderInfo.itmResult ||
HB_IS_NIL( pOrderInfo.itmResult ) )
                  hb_retl( errCode == SUCCESS );
               else
                  hb_itemReturn( pOrderInfo.itmResult );
               hb_itemRelease( pOrderInfo.itmResult );
            }
            else
               hb_errRT_DBCMD( EG_NOTABLE, EDBCMD_NOTABLE, NULL,
"ORDLISTADD" );
         }
      #PRAGMA ENDDUMP
   #ENDIF
#ENDIF

END CODE >>>>>>>>>>



_______________________________________________
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to