FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Erro com TDataBase
Posts: 248
Joined: Wed Jan 11, 2006 11:30 AM
Erro com TDataBase
Posted: Mon Apr 14, 2008 10:00 PM
Toda vez q eu uso um Valid no Get a Database retorna este Erro:

Error description: Error BASE/1004  Message not found: TDATABASE:ARRAZFOR

Stack Calls
===========
   Called from: HARBOUR.prg => _CLSSETERROR(157)
   Called from: DATABASE.prg => TDATABASE:ARRAZFOR(397)
   Called from: CadaForn.prg => (b)CADA_FORN(35)
   Called from: CadaForn.prg => (b)CADA_FORN(177)
   Called from: TVGet.Prg => TVGET:LVALID(873)
   Called from: WINDOW.prg => (b)TWINDOW:TWINDOW(281)
   Called from: WINDOW.prg => TWINDOW:END(0)
   Called from: CONTROL.prg => TVGET:END(696)
   Called from: CadaForn.prg => (b)CADA_FORN(245)
   Called from:  => AEVAL(0)
   Called from: CadaForn.prg => CADA_FORN(245)
   Called from: SB_Main.prg => (b)MAIN(99)
   Called from: DOTNETBA.prg => TDOTNETBAR:LBUTTONUP(376)
   Called from: WINDOW.prg => TWINDOW:HANDLEEVENT(0)
   Called from: CONTROL.prg => TCONTROL:HANDLEEVENT(1414)
   Called from: DOTNETBA.prg => TDOTNETBAR:HANDLEEVENT(205)
   Called from: WINDOW.prg => _FWH(3252)
   Called from:  => WINRUN(0)
   Called from: WINDOW.prg => TWINDOW:ACTIVATE(926)
   Called from: SB_Main.prg => MAIN(159)


Oq podes Ser ?

Saludos
aleseribeli@hotmail.com

FwH, Hb Svn, ADS 8.1, ADS 10, Pelles C, FwPPC, MsVc 2008, MsVc 2010
"Conhecimento, você não subtrai quando divide; mas soma e multiplica."
**---Mário Persona---**
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Erro com TDataBase
Posted: Wed Apr 16, 2008 12:55 PM

ARRAZFOR

Voce tem no banco de dados este campo: ARRAZFOR ??

Se tem, Exemplo no GET:

REDEFINE GET aGet[1] VAR DbClientes:ARRAZFOR PICTURE "@!" OF oDlg

Abraços.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 248
Joined: Wed Jan 11, 2006 11:30 AM
Erro com TDataBase
Posted: Wed Apr 16, 2008 11:53 PM

Sim ..logicamente meu amigo, eh como falei..soh ocorre este erro, qdo eu ultilizo algum valid no GEt, sem o valid compila numa Boa.

aleseribeli@hotmail.com

FwH, Hb Svn, ADS 8.1, ADS 10, Pelles C, FwPPC, MsVc 2008, MsVc 2010
"Conhecimento, você não subtrai quando divide; mas soma e multiplica."
**---Mário Persona---**
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Erro com TDataBase
Posted: Thu Apr 17, 2008 08:24 AM

Prueba a hacer esto:

MsgInfo( Field->ARRAZFOR )

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Erro com TDataBase
Posted: Thu Apr 17, 2008 11:57 AM

NO GET:

VALID VALIDAR( DbClientes:ARRAZFOR, lAppend, DbClientes, Etc )

na funcao:

STATIC FUNCTION VALIDAR( cCodCli, lAppend, DbCLientes, Etc )

IF GETASYNCKEY( VK_UP )
RETURN( .F. )
ENDIF

DBSEEK( cCodCli )

IF FOUND()

...
ELSE

...
ENDIF

RETURN( .T. )

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 248
Joined: Wed Jan 11, 2006 11:30 AM
Erro com TDataBase
Posted: Thu Apr 17, 2008 08:25 PM
Encontrei lo problema ou quase.

Se ultilizo um Valid no Get e destruo los gets desta forma aqui, me dá Erro no Database:

 ACTIVATE DIALOG oDlg CENTERED ON MOVE(oDlg:Center) VALID lSair		       
  dbCloseAll()
  lSair:=.F.
 
  Aeval(oGet, { |x| IF( x#Nil,x:End(),) })  //--> Aki para destruir Array de Gets  

  oSay:End()
  EndDialog()
  Release All 
  SysRefresh()
    
RETURN nil

Se comentar el linha para destruir gets no dá erro.

Mas, se y usar desta forma aki com bKeyDown posso destruir los gets normal que no me dá erro:
#include "FiveWin.ch"

#define DLGC_WANTALLKEYS 4 

FUNCTION ConsOC_01()
.
.
    REDEFINE GET oGet[1]  VAR oDbfCobranca:codicli ID 21 OF oDlg  PICTURE "999999" Update      
             oGet[1]:bKeyDown := {|nKey| oGet[1]:Assign(), IF( nKey == VK_RETURN, ( AchaOC(oDlg,cCodiCli), oDlg:UpDate() ),  NIL ) }     

ACTIVATE DIALOG oDlg CENTERED ON MOVE(oDlg:Center) VALID lSair		       
  dbCloseAll()
  lSair:=.F.
 
  Aeval(oGet, { |x| IF( x#Nil,x:End(),) })  //--> Aki para destruir Array de Gets  

  oSay:End()
  EndDialog()
  Release All 
  SysRefresh()
    
RETURN nil


Tambien tem outro caso que me da esto erro:

Sem Ultilizar Valid ou bKeyDown, mas, si ultilizando uno Browse(xbrowse) com algunos Gets normais, somente para leitura.

Ao movimentar el Cursor no browse passando pelos registros, atualiza los Gets automaticos com las outras informacions relativos ao registro do browse em q estoy parado, bem simples.

Ao sair del browse se tengo la opçao de Destruir los Gets desta forma;

  Aeval(oGet, { |x| IF( x#Nil,x:End(),) })  //--> Aki para destruir Array de Gets


Me dar lo mesmo erro na database dos anteriores, si comento el linha para no destruir los gets, no me dá Erro.


Alguma soluçao para isto ???????????????


Saludos Ale
aleseribeli@hotmail.com

FwH, Hb Svn, ADS 8.1, ADS 10, Pelles C, FwPPC, MsVc 2008, MsVc 2010
"Conhecimento, você não subtrai quando divide; mas soma e multiplica."
**---Mário Persona---**
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Erro com TDataBase
Posted: Thu Apr 17, 2008 08:34 PM

ALE, VOCE DEU UM DBCLOSEALL() ANTES DO AEVAL. ????

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 248
Joined: Wed Jan 11, 2006 11:30 AM
Erro com TDataBase
Posted: Thu Apr 17, 2008 09:14 PM
karinha wrote:ALE, VOCE DEU UM DBCLOSEALL() ANTES DO AEVAL. ????


Jejejeje......agora que eu vi...jejejej

Gracias Joao

Mas me tire uma duvida, pq quando eu usava o bKeyDown, nao dava erro e com o bKeyDown eu podia usar o dbCloseall() antes do Eval ???

Saludos
aleseribeli@hotmail.com

FwH, Hb Svn, ADS 8.1, ADS 10, Pelles C, FwPPC, MsVc 2008, MsVc 2010
"Conhecimento, você não subtrai quando divide; mas soma e multiplica."
**---Mário Persona---**
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Erro com TDataBase
Posted: Fri Apr 18, 2008 12:09 PM

Se entendi sua pergunta, é porque o FIVEWIN se executa de baixo para cima.

No bKeyDown não há checagem de eventos, já na saida do ACTIVATE DIALOG há checagem de eventos, e como voce esta usando OBJETOS DATABASE, todos os eventos são baseados no banco de dados.

Se voce fechou o banco de dados, todos os eventos pertencentes ao banco de dados desaparecem naturalmente.

Para fechar um banco de dados quando usa-se OBJETO DATABASE, o mais correto, já que podemos trabalhar com n bancos de dados, fechar e abrir em tempo real, ideal é:

DbClientes:Close()
DbEstoque:Close()

Etc.

Abraços

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 248
Joined: Wed Jan 11, 2006 11:30 AM
Erro com TDataBase
Posted: Fri Apr 18, 2008 05:55 PM

Gracias Joao, pela explicação.....muito bom.

Saludos

aleseribeli@hotmail.com

FwH, Hb Svn, ADS 8.1, ADS 10, Pelles C, FwPPC, MsVc 2008, MsVc 2010
"Conhecimento, você não subtrai quando divide; mas soma e multiplica."
**---Mário Persona---**

Continue the discussion