Clipper On Line • Ver Tópico - Error LETO/1201 Workarea nao indexada
Página 1 de 1

Error LETO/1201 Workarea nao indexada

MensagemEnviado: 23 Nov 2015 09:32
por asimoes
Alguém pode dar uma luz para esse problema:

Error LETO/1201 Workarea nao indexada

O problema acontece no dbseek

   ADMSAUDE->(OrdSetFocus(3))
   IF ADMSAUDE->(DbSeek(cVar))


A abertura da tabela está assim:

  SWITCH Upper(cDataBase)
  CASE 'ADMSAUDE'
        IF SELECT(cDataBase) == 0 .OR. !&cDataBase.->(Used())
           lAbriu:=NetUse(cServer,cDataBase,lShared)
           SET INDEX TO ("ADMSAUDE.CDX")
        ENDIF
        EXIT


As estações são windows 7/32 professional

Error LETO/1201 Workarea nao indexada

MensagemEnviado: 23 Nov 2015 11:24
por Mario Mesquita
Boa tarde.

Tem certeza que o CDX abriu mesmo? Tem umas condições, será que retornaram .T. ?

Sds,
Mario.

Error LETO/1201 Workarea nao indexada

MensagemEnviado: 23 Nov 2015 11:30
por asimoes
Mário,

A abertura do dbf é feito no inicio da rotina, se fosse um problema na tabela o sistema já entraria em erro, o indice é aberto logo após a abertura da tabela,
O ordsetfocus é trocado conforme a necessidade da pesquisa, não sei se isso é um problema de rede, no servidor ou qualquer outro motivo não conhecido, eu não achei nada no google que indica-se uma solução.

Error LETO/1201 Workarea nao indexada

MensagemEnviado: 23 Nov 2015 13:05
por Mario Mesquita
Asiomes,

Que abacaxi! Tenho observado os colegas que usam o Leto. Andei interessado em usar o motor nas minhas tabelas .DBF, coisa básica, intranet mesmo.

Para usar em redes pequenas, de menos de dez terminais. Parece muito interessante, mas quando vejo vocês que são feras tendo esses pequenos problemas, fico meio assustado...

Nesse erro, parece que ele não reconhece o arquivo índice. Está setado para CDX? Desculpe as perguntas bobas, mas essas coisas às vezes é que te dão canseira.

Abraço,
Mario.

Error LETO/1201 Workarea nao indexada

MensagemEnviado: 23 Nov 2015 13:32
por asimoes
Mário,

O indice é cdx, inclusive eu até uso SET AUTOPEN ON só para garantir a abertura automática

Error LETO/1201 Workarea nao indexada

MensagemEnviado: 23 Nov 2015 13:40
por asimoes
Tem muita coisa legal disponível para o harbour, mas quando começa dar erro e você não faz idéia do que é, preocupa.

Error LETO/1201 Workarea nao indexada

MensagemEnviado: 23 Nov 2015 14:36
por Toledo
Alexandre, se os arquivos estão abertos (DBF e CDX), então resta saber se no arquivo CDX existe esta terceira (3) ordem.

O melhor seria fazer alguns testes:

SELE ADMSAUDE
? OrdSetFocus(1)
? OrdSetFocus(2)
? OrdSetFocus(3)
? OrdSetFocus(1)


Abraços,

Error LETO/1201 Workarea nao indexada

MensagemEnviado: 23 Nov 2015 15:01
por asimoes
Olá Toledo,

Depois de aberta a tabela eu fiz este teste:

cTEXTO := ''
FOR X = 1 TO OrdCount()
   cTEXTO += Str(X,2)+'-'+OrdName(x)+" "+OrdKey(x) + hb_EOL()
NEXT
hwg_MsgInfo(cTexto)


Todas as tags com as chaves estão corretas.

Obs.: este erro é eventual, não sei qual condição precisa para ocasionar a falha, pode ser um problema de rede no momento do ordsetfocus?, inclusive eu estou
testando esta rotina de outra forma, não sei se é chover no molhado, mas ao invés de fazer assim: OrdsetFocus(1) troquei para OrdSetFcus("nome da tag")

ADMSAUDE->(OrdSetFocus("admsau-2")) //3
IF ADMSAUDE->(DbSeek(cVar))

Error LETO/1201 Workarea nao indexada

MensagemEnviado: 24 Nov 2015 11:12
por Jairo Maia
Olá Pessoal,

Alexandre, como você disse que o erro é eventual, então apenas um palpite: Mais acima você colocou como faz a abertura da tabela, e é através da função NetUse(). Você também pega o retorno de NetUse() em lAbriu. Mas parece que você não trata a variável lAbriu, assim, se a função NetUse() retornou .f. porque o arquivo está bloqueado por outro terminal, sua função continua, e na verdade o arquivo não foi aberto na máquina que dá o erro. Apenas palpite...

Error LETO/1201 Workarea nao indexada

MensagemEnviado: 24 Nov 2015 15:57
por JoséQuintas
Não uso lettodb mas estranhei essa parte de índice.
Como é identificado se o índice é local ou no lettodb?

No hbnetio é diferente:

use net:clientes
set index to net:clientes


Ao não identificar com net:, o arquivo é considerado local.

Só estranhei isso e fiquei curioso.
Não sei se pode ter a ver com seu problema.

Error LETO/1201 Workarea nao indexada

MensagemEnviado: 30 Nov 2015 13:51
por Itamar M. Lins Jr.
Ola!
Em algum lugar vc deve está fechando o DBF ou a rede está caindo... Esse erro ocorre mesmo em rede local ou via ADSL ?
Eu pego esse erro aqui quando uso ADSL com o sinal muito ruim... Local já não apresenta.

LetoDb não tem o sintaxe do NETIO, quando abrimos o DBF indicamos o local via TCP/IP.
use "//192.168.0.100:2812/meudbf.dbf "
ou
use meudbf.dbf
Quando setado anteriormente o local via arquivo letodb.ini
[MAIN]
Port = 2812             
Logfile = "letodb.log"   
DEFAULT_DRIVER = CDX     
DATAPATH = c:\clientes\lojaxyz\
...


Eu fiz uma checagem extra neste caso...
      BEGIN SEQUENCE WITH {| oErr | Break( oErr ) } 
     
         eqw->(ordSetFocus(2)) //cod_mercad
         If eqw->( Dbseek(eq->cod_mercad) )
...
      Recover
     
         hwg_Msginfo('Falha na rede: ' + cPath)
         //aWAN[n]   := LETO_GETCURRENTCONNECTION()
         //aAlias[n] := "EQ"+strzero(n,3)
         fechaDb("EQW")
         cCDX := cPath+'estoque.cdx'
         DbUseArea(.T.,"LETO",cPath+'estoque.dbf',"EQW",.t.,.f.,'PTISO')
         Set index to &cCDX
         EQW->(OrdSetFocus(2)) //cod_mercad
         LOOP
             
      End Sequence


Saudações,
Itamar M. Lins Jr.

Error LETO/1201 Workarea nao indexada

MensagemEnviado: 30 Nov 2015 19:07
por asimoes
Eu modifiquei o código para OrdSetFcus("nome da tag") e até agora está funcionando sem erro.

Error LETO/1201 Workarea nao indexada

MensagemEnviado: 30 Nov 2015 21:56
por JoséQuintas
Apenas suposição:
Talvez a macro no nome do índice tenha causado falha na conversão do #include.