FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour FWH 24.02 y Harbour con BCC7.7 y Select()
Posts: 1445
Joined: Mon Oct 10, 2005 02:38 PM
FWH 24.02 y Harbour con BCC7.7 y Select()
Posted: Mon Mar 04, 2024 08:53 PM
Hola a todos,

He actualizado a la versión de FWH 24.02 con su Harbour correspondiente (el que se facilita con la actualización).

Resulta que ahora la función 'Select()' me devuelve 0, cuando antes con la versión del 22.12 me devolvía un valor 'correcto' (superior a '0').

¿A alguien le sucede lo mismo?

Debo mencionar que antes he realizado 'DbSelectArea( 0 )', que se supone que asignará al área de trabajo libre más bajo entre 0 y 255.

El código es:
Code (fw): Select all Collapse
If Select( ::cName ) > 0
    DbSelectArea( 0 )
    MsgInfo( Select(), "Hola" )
EndIf
¿Que ha cambiado?

Muchas gracias,

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Re: FWH 24.02 y Harbour con BCC7.7
Posted: Mon Mar 04, 2024 10:42 PM
Works fine here:
Code (fw): Select all Collapse
FUNCTION MAIN()

    DBCREATE( "MYTEST.DBF", { { "TEST", "C", 30, 0 } } )

    USE TEST ALIAS TEST1

    ? SELECT()

    USE TEST ALIAS TEST2 NEW

    ? SELECT()

    CLOSE ALL

    INKEY( 0 )

    RETURN NIL
Result:

1
2
Posts: 1445
Joined: Mon Oct 10, 2005 02:38 PM
Re: FWH 24.02 y Harbour con BCC7.7
Posted: Tue Mar 05, 2024 06:17 AM
Enrico Maria Giordano wrote:Works fine here:
Code (fw): Select all Collapse
FUNCTION MAIN()

    DBCREATE( "MYTEST.DBF", { { "TEST", "C", 30, 0 } } )

    USE TEST ALIAS TEST1

    ? SELECT()

    USE TEST ALIAS TEST2 NEW

    ? SELECT()

    CLOSE ALL

    INKEY( 0 )

    RETURN NIL
Result:

1
2
Muchas gracias Enrico,
Es cierto, en esa situación funciona, pero el caso es que en esta no:

If Select( ::cName ) > 0
DbSelectArea( 0 )
--->>> MsgInfo( Select(), "Hola" )
EndIf

¿Cómo funcionan DbSelectArea() y Select()?

" DBSELECTAREA() hace que el área de trabajo especificada se convierta en
el área de trabajo actual. Todas las operaciones de base de datos
posteriores se aplican a este área de trabajo, a menos que se
especifique explícitamente otra área de trabajo para una operación.
DBSELECTAREA() realiza la misma función que un mandato SELECT
estándar. Si desea más información, consulte el mandato SELECT.

Notas
Selección cero: Si se selecciona un área de trabajo cero, el
 área de trabajo libre con el número más bajo se convierte en el área
de trabajo actual."

" SELECT() es una función de base de datos que determina el número de
 área de trabajo de un alias. El número devuelto puede estar comprendido
entre 0 y 250. Si no se especifica <cAlias>, se devuelve el número del
área de trabajo actual. Si se especifica y el alias no existe, SELECT()
devuelve cero."

Antes MsgInfo( Select(), "Hola" ) mostraba un número mayor que '0', por que previamente se realizaba DbSelectArea( 0 ).
Ahora muestra '0'; ahora Select() no es compatible con desarrollos anteriores.

Entiendo que debe ser algo de Harbour, pero no tengo acceso a los foros de Harbour.

Muchas gracias Enrico.

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: FWH 24.02 y Harbour con BCC7.7 y Select()
Posted: Tue Mar 05, 2024 07:42 AM
Este ejemplo parece correcto:
Code (fw): Select all Collapse
#include "fivewin.ch"

function Main()

   USE CUSTOMER
   ? SELECT()   // --> 1
   DBSELECTAREA( 0 )
   ? SELECT()  // --> 2

return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Re: FWH 24.02 y Harbour con BCC7.7 y Select()
Posted: Tue Mar 05, 2024 09:10 AM

Carlos, we need a small and self-contained sample showing the problem.

Posts: 318
Joined: Fri Jan 14, 2022 08:37 AM
Re: FWH 24.02 y Harbour con BCC7.7 y Select()
Posted: Tue Mar 05, 2024 09:28 AM

Pues yo me inclino porque es un problema del preprocesado.

Habria que ver el archivo .ppo generado a ver si está convirtiendo Select() en una cosa inesperada

Recordar tambien que el comando SELECT es traducido a dbUseArea([x])

Posts: 1445
Joined: Mon Oct 10, 2005 02:38 PM
Re: FWH 24.02 y Harbour con BCC7.7 y Select()
Posted: Tue Mar 05, 2024 12:16 PM
Antonio Linares wrote:Este ejemplo parece correcto:
Code (fw): Select all Collapse
#include "fivewin.ch"

function Main()

   USE CUSTOMER
   ? SELECT()   // --> 1
   DBSELECTAREA( 0 )
   ? SELECT()  // --> 2

return nil
He puesto en mi MAIN() inmediatamente después de declarar las variables 'Local' estas líneas:

USE CUSTOMER
? SELECT() // --> 1
DBSELECTAREA( 0 )
? SELECT() // --> ?????

y a mi el segundo SELECT() me da '0' !!!

Maldita sea. Justamente hoy que no tengo ganas de buscar fantasmas.

A ver. Empiezo el prueba y error (mis conocimientos no dan para más)

Sabéis en que LIB de Harbour está la función SELECT() ?

Tenéis algún ejemplo del .rmk para BCC7.7?
Para ver en que orden se detallan los 'includes', 'lib' y demás.

Muchas gracias.

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: FWH 24.02 y Harbour con BCC7.7 y Select()
Posted: Tue Mar 05, 2024 01:20 PM
// FWH/SAMPLES\SELECT.PRG
Code (fw): Select all Collapse
#include "FiveWin.ch"

FUNCTION Main()

   LOCAL nLastArea, cAlias

   USE Customer NEW
   GO TOP

   SELECT Customer

   nLastArea := SELECT()

   cAlias := ALIAS()

   IF SELECT( cAlias ) <= 0

      ? "ALIAS Aún no abierto.", Select()

   ELSE

      ? "ALIAS ya está abierto: ", Select()

   ENDIF

   DbSelectArea(0)

   SELECT( nLastArea ) // cAlias

   Browse()

RETURN NIL

// LIB: RDD.LIB
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 1445
Joined: Mon Oct 10, 2005 02:38 PM
Re: FWH 24.02 y Harbour con BCC7.7 y Select()
Posted: Tue Mar 05, 2024 09:59 PM
karinha wrote:// FWH/SAMPLES\SELECT.PRG
Code (fw): Select all Collapse
#include "FiveWin.ch"

FUNCTION Main()

   LOCAL nLastArea, cAlias

   USE Customer NEW
   GO TOP

   SELECT Customer

   nLastArea := SELECT()

   cAlias := ALIAS()

   IF SELECT( cAlias ) <= 0

      ? "ALIAS Aún no abierto.", Select()

   ELSE

      ? "ALIAS ya está abierto: ", Select()

   ENDIF

   DbSelectArea(0)

   SELECT( nLastArea ) // cAlias

   Browse()

RETURN NIL

// LIB: RDD.LIB
Muchas gracias Karinha, al final he empezado de nuevo, instalación, probar, ...

Regards, saludos.

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Posts: 1445
Joined: Mon Oct 10, 2005 02:38 PM
Re: FWH 24.02 y Harbour con BCC7.7 y Select()
Posted: Tue Mar 05, 2024 10:05 PM
Hola a todos,

A ver... No logro avanzar.

He instalado de nuevo Harbour bajado junto FWH 24.02.

El código que he probado es
Code (fw): Select all Collapse
//#include "FiveWin.ch"

FUNCTION MAIN()

USE BDMASTER

? SELECT()   // --> 1

MsgInfo( SELECT(), "." )

DBSELECTAREA( 0 )
? SELECT()  // --> 2

MsgInfo( SELECT(), ".." )
   
CLOSE DATABASES
   
RETURN NIL
El fichero .rmk es este:
Code (fw): Select all Collapse
HBDIR=c:\desarrol\harbour_2402
BCDIR=c:\desarrol\bcc7732
FWDIR=c:\desarrol\fwh_2402

TREBALL=c:\desarrol\treball\Prova

#change these paths as needed y los de arriba también.
.path.PRG = $(TREBALL)\prg
.path.OBJ = $(TREBALL)\obj
.path.PPO = $(TREBALL)\ppo
.path.CH  = $(HBDIR)\include
.path.C   = $(TREBALL)\c

# Atenció el fitxer .RC ha d'estar a la mateixa carpeta a on es faci el fitxer .RES; si no no pot obrir el fitxer .RC
.path.rc  = .\

#important: Use Uppercase for filenames extensions, in the next two rules!

#FITXERS QUE SERAN COMPILATS AMB HARBOUR.
#========================================
PRG =        \
Prova.PRG

# para codigo C deben usarse las siguientes líneas
C =          \

PROJECT    : Prova.exe

Prova.exe  : $(PRG:.PRG=.OBJ) $(C:.C=.OBJ) Prova.res

   echo off

   echo $(BCDIR)\bin\c0w32.obj +       > b32.bc
   echo $(TREBALL)\obj\Prova.obj, +     >> b32.bc

   echo $(TREBALL)\exe\Prova.exe, +    >> b32.bc
   echo Prova.map, +                   >> b32.bc

   echo $(FWDIR)\lib\FiveH.lib $(FWDIR)\lib\FiveHC.lib + >> b32.bc

   echo $(HBDIR)\lib\win\bcc\hbrtl.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbvm.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\gtgui.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hblang.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbmacro.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbrdd.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\rddntx.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\rddcdx.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\rddfpt.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbsix.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbdebug.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbcommon.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbpp.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbwin.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbcpage.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbct.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbcplr.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\xhb.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\png.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbzlib.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbziparc.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbmzip.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\minizip.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbpcre.lib + >> b32.bc

   echo $(BCDIR)\lib\cw32.lib + >> b32.bc
   echo $(BCDIR)\lib\import32.lib + >> b32.bc
   echo $(BCDIR)\lib\psdk\odbc32.lib + >> b32.bc
   echo $(BCDIR)\lib\psdk\nddeapi.lib + >> b32.bc
   echo $(BCDIR)\lib\psdk\iphlpapi.lib + >> b32.bc
   echo $(BCDIR)\lib\psdk\msimg32.lib + >> b32.bc
   echo $(BCDIR)\lib\psdk\shell32.lib + >> b32.bc
   echo $(BCDIR)\lib\psdk\gdiplus.lib + >> b32.bc
   echo $(BCDIR)\lib\psdk\rasapi32.lib, >> b32.bc


   IF EXIST Prova.res echo Prova.res >> b32.bc

   $(BCDIR)\bin\ilink32 -Gn -aa -Tpe -s @b32.bc

   del b32.bc

.PRG.OBJ:

  $(HBDIR)\bin\harbour $< /N /W /P$(TREBALL)\ppo\ /O$(TREBALL)\obj\ /I$(TREBALL)\include;$(HBDIR)\include >> $(TREBALL)\compila.txt

  $(BCDIR)\bin\bcc32 -c -tWM -I$(HBDIR)\include -I$(BCDIR)\include -o$(TREBALL)\obj\$& $(TREBALL)\obj\$&.c

.C.OBJ:
  echo -c -tWM -D__HARBOUR__ -DHB_API_MACROS > tmp
  echo -I$(HBDIR)\include >> tmp
  $(BCDIR)\bin\bcc32 -o$(TREBALL)\obj\$& @tmp $(TREBALL)\C\$&.c
  del tmp

Prova.res : Prova.rc
  $(BCDIR)\bin\brc32.exe -r Prova.rc
Pués bien, el segundo MsgInfo( SELECT(), ".." ) muestra en pantalla '0'.

Ya no sé que hacer.
La única duda que me queda es que el Harbour que bajé no esté bien.

A ver que se les ocurre a Ustedes.

Muchas gracias.

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Posts: 1445
Joined: Mon Oct 10, 2005 02:38 PM
Re: FWH 24.02 y Harbour con BCC7.7 y Select()
Posted: Tue Mar 05, 2024 10:28 PM
Otra prueba.

En el PRG añado al final:
Code (fw): Select all Collapse
#pragma BEGINDUMP
#ifdef __HARBOUR__
#if defined( __BORLANDC__ ) && __BORLANDC__ >= 0x0770
int _streams;
#endif
#endif
#pragma ENDDUMP
Esto permite compilarlo con Harbour 22.12. y BCC7.7-32

Para ello modifico el .rmk para que use este Harbour 22.12 y no el 24.02.

Y el Select() responde lo que se espera. Funciona.

Creo que el problema lo tengo en el Harbour.

O alguna combinación de lib que se están dando de Hostias.

Venga, denme una alegría mañana.
Me voy a dormir.

Muchas gracias.

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: FWH 24.02 y Harbour con BCC7.7 y Select()
Posted: Tue Mar 05, 2024 11:21 PM
umm, hace poco se ha realizado cambio en esa función en harbour, aparentemente es un cambio inicuo que no debería provocar el error que experimentas, pero del dicho al hecho...
2024-02-09 20:56 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
...
...
* src/rdd/dbcmd.c
+ accept symbol items in Select() and DbSelectArea() just like in
( <alias> ) -> <exp>
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: FWH 24.02 y Harbour con BCC7.7 y Select()
Posted: Tue Mar 05, 2024 11:21 PM
umm, hace poco se ha realizado cambio en esa función en harbour, aparentemente es un cambio inicuo que no debería provocar el error que experimentas, pero del dicho al hecho...
2024-02-09 20:56 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
...
...
* src/rdd/dbcmd.c
+ accept symbol items in Select() and DbSelectArea() just like in
( <alias> ) -> <exp>
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: FWH 24.02 y Harbour con BCC7.7 y Select()
Posted: Tue Mar 05, 2024 11:25 PM

cualquier cosa lo podemos ver por anydesk, si desea, me contactas por gmail karlos.vargas at gmail dot com.

Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 1445
Joined: Mon Oct 10, 2005 02:38 PM
Re: FWH 24.02 y Harbour con BCC7.7 y Select()
Posted: Wed Mar 06, 2024 11:52 AM
carlos vargas wrote:cualquier cosa lo podemos ver por anydesk, si desea, me contactas por gmail karlos.vargas at gmail dot com.
Muchas gracias Carlos por la información, me ha sido útil.

He enviado un mail y estoy esperando respuesta, a ver si por esta vía avanzo.

Iré actualizando para contar.

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home