FWH 24.02 y Harbour con BCC7.7 y Select()

FWH 24.02 y Harbour con BCC7.7 y Select()

Postby FiveWiDi » Mon Mar 04, 2024 8: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: Select all  Expand view  RUN

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


¿Que ha cambiado?

Muchas gracias,
Last edited by FiveWiDi on Mon Mar 04, 2024 10:43 pm, edited 1 time in total.
Un Saludo
Carlos G.

FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
FiveWiDi
 
Posts: 1190
Joined: Mon Oct 10, 2005 2:38 pm

Re: FWH 24.02 y Harbour con BCC7.7

Postby Enrico Maria Giordano » Mon Mar 04, 2024 10:42 pm

Works fine here:

Code: Select all  Expand view  RUN
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
User avatar
Enrico Maria Giordano
 
Posts: 8718
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Re: FWH 24.02 y Harbour con BCC7.7

Postby FiveWiDi » Tue Mar 05, 2024 6:17 am

Enrico Maria Giordano wrote:Works fine here:

Code: Select all  Expand view  RUN
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 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
FiveWiDi
 
Posts: 1190
Joined: Mon Oct 10, 2005 2:38 pm

Re: FWH 24.02 y Harbour con BCC7.7 y Select()

Postby Antonio Linares » Tue Mar 05, 2024 7:42 am

Este ejemplo parece correcto:
Code: Select all  Expand view  RUN
#include "fivewin.ch"

function Main()

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

return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42117
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: FWH 24.02 y Harbour con BCC7.7 y Select()

Postby Enrico Maria Giordano » Tue Mar 05, 2024 9:10 am

Carlos, we need a small and self-contained sample showing the problem.
User avatar
Enrico Maria Giordano
 
Posts: 8718
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Re: FWH 24.02 y Harbour con BCC7.7 y Select()

Postby paquitohm » Tue Mar 05, 2024 9: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])
paquitohm
 
Posts: 266
Joined: Fri Jan 14, 2022 8:37 am

Re: FWH 24.02 y Harbour con BCC7.7 y Select()

Postby FiveWiDi » Tue Mar 05, 2024 12:16 pm

Antonio Linares wrote:Este ejemplo parece correcto:
Code: Select all  Expand view  RUN
#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 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
FiveWiDi
 
Posts: 1190
Joined: Mon Oct 10, 2005 2:38 pm

Re: FWH 24.02 y Harbour con BCC7.7 y Select()

Postby karinha » Tue Mar 05, 2024 1:20 pm

// FWH/SAMPLES\SELECT.PRG

Code: Select all  Expand view  RUN

#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
User avatar
karinha
 
Posts: 7831
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: FWH 24.02 y Harbour con BCC7.7 y Select()

Postby FiveWiDi » Tue Mar 05, 2024 9:59 pm

karinha wrote:// FWH/SAMPLES\SELECT.PRG

Code: Select all  Expand view  RUN

#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 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
FiveWiDi
 
Posts: 1190
Joined: Mon Oct 10, 2005 2:38 pm

Re: FWH 24.02 y Harbour con BCC7.7 y Select()

Postby FiveWiDi » 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: Select all  Expand view  RUN
//#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: Select all  Expand view  RUN
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 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
FiveWiDi
 
Posts: 1190
Joined: Mon Oct 10, 2005 2:38 pm

Re: FWH 24.02 y Harbour con BCC7.7 y Select()

Postby FiveWiDi » Tue Mar 05, 2024 10:28 pm

Otra prueba.

En el PRG añado al final:

Code: Select all  Expand view  RUN
#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 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
FiveWiDi
 
Posts: 1190
Joined: Mon Oct 10, 2005 2:38 pm

Re: FWH 24.02 y Harbour con BCC7.7 y Select()

Postby carlos vargas » 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)
User avatar
carlos vargas
 
Posts: 1721
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: FWH 24.02 y Harbour con BCC7.7 y Select()

Postby carlos vargas » 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)
User avatar
carlos vargas
 
Posts: 1721
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: FWH 24.02 y Harbour con BCC7.7 y Select()

Postby carlos vargas » 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)
User avatar
carlos vargas
 
Posts: 1721
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: FWH 24.02 y Harbour con BCC7.7 y Select()

Postby FiveWiDi » 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 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
FiveWiDi
 
Posts: 1190
Joined: Mon Oct 10, 2005 2:38 pm

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 40 guests