FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour TDATABASE en: FWH26.03
Posts: 8716
Joined: Tue Dec 20, 2005 07:36 PM

TDATABASE en: FWH26.03

Posted: Thu Jul 16, 2026 07:50 PM

Estimado Ant么nio: anteriormente en versiones anteriores:

--> VAR DbFunciona:END
--> VAR DbFunciona:CARGO

Esto funcionaba.
Sin embargo, ahora parece que se trata de palabras reservadas y ya no funciona; el contenido del campo no se muestra en el GET.

Ejemplo:

    IF lAppend  //-> Inclusao

    DbFunciona:SetOrder( 1 )    // Ordenado Por Codigo
    DbFunciona:GoBottom()

    nCodigo := ( DbFunciona:Codigo )

    DbFunciona:SetBuffer( .T. )
    DbFunciona:Blank()

    IF EOF()
      nCodigo := [1]
      (DbFunciona:Codigo) := nCodigo // Se For a Primeira Vez Que Cadastra
    ELSE
       (DbFunciona:Codigo) := SPACE(18)
    ENDIF

    DbFunciona:Cidade     := [SAO PAULO              ]
    DbFunciona:SetOrder( 2 ) // Ordenado Por Nome do Cliente

 ELSE //-> Altera鈥∶唎

    IF EOF()

        MsgStop( OemToAnsi( "Aten鈥∶唎 Usu聽rio:                      " ) +CRLF+ ;
                 OemToAnsi( "Banco de Dados Est聽 Vazio, Cadastre   " ) +CRLF+ ;
                 OemToAnsi( "os Elementos Para Esta Opera鈥∶唎.      " ) +CRLF+ ;
                 OemToAnsi( "Acesso N脝o Permitido ao Banco de Dados" ),       ;
                 OemToAnsi( "Mensagem de Erro Para o Usu聽rio.      " ) )

        GO TOP

        RETURN( .F. )

    ENDIF

    nRecNo := (DbFunciona:cAlias)->( RecNo() )
    DbFunciona:GoTo( nRecNo )
    nOldRecNo := (DbFunciona:cAlias)->( RecNo() )

     // ?  (DbFunciona:cAlias)->CARGO  palavra CARGO E RESERVADA. ??
     // MUDEI PARA FUNCAO.

ENDIF

// NO FUNCIONA EN FWH2603, ANTES FUNCIONABA

// Neste Get, entra o Endereco do funcionario
REDEFINE GET aGet[004] VAR DbFunciona:END  PICTURE "@K!"      ;
   VALID !VAZIO( DbFunciona:End )                        ;
   ID 23 OF oDlg                                              ;
   FONT oFont UPDATE                                          ;
   COLOR CLR_BLACK, CLR_WHITE                                 ;
   CURSOR  oHand                                              ;
   MESSAGE ( OemToAnsi( "Endere鈥" ) )

//-> Cargo do funcionario
REDEFINE GET aGet[025] VAR DbFunciona:CARGO ID 44 OF oDlg     ;
   PICTURE "@K !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"       ;
   FONT oFont UPDATE                                          ;
   COLOR CLR_BLACK, CLR_WHITE                                 ;
   CURSOR  oHand                                              ;
   MESSAGE ( OemToAnsi( "Cargo do Funcionario" ) )

Regards, saludos.

Jo茫o Santos - S茫o Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 44508
Joined: Thu Oct 06, 2005 05:47 PM

Re: TDATABASE en: FWH26.03

Posted: Fri Jul 17, 2026 08:38 AM

Estimado Joao,

:END se rompi贸 porque colisiona con el METHOD End() INLINE ::Close() (a帽adido en 2017), que cierra la tabla en vez de llegar al OnError que resuelve campos. database.prg:306

:CARGO colisiona con DATA Cargo (existe desde 2010), as铆 que se resuelve contra ese DATA vac铆o y nunca llega al OnError. database.prg:82

Soluci贸n: usa acceso expl铆cito por campo, p.ej. (DbFunciona:cAlias)->CARGO, DbFunciona:hRec["CARGO"] o ::FieldGet/::FieldPut. database.prg:1623-1624

Cuando env铆as DbFunciona:CARGO 贸 End, el sistema de clases primero busca un m茅todo o DATA con ese nombre. Si existe, lo usa directamente y OnError nunca llega a ejecutarse. Solo si el mensaje es desconocido, OnError mira si coincide con un campo (::FieldPos) y hace FieldGet/FieldPut. database.prg:1623-1624

regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion