Página 1 de 1
Area Fantasma? BASE/1002
Enviado: 19 Abr 2017 16:19
por fladimir
Dá uma olhada no print abaixo (08 areas abertas):

- 8 Areas abertas
- Captura de tela em 2017-04-19 15-01-10.png (8.64 KiB) Exibido 1113 vezes
Print antes do erro

- Resultado do Select "9" Areas
Observe q capturou o retorno do Alias() na variavel Local12 VAZIO, ai eu não entendia isso e ainda não entendo, fiz um Select e retornou 9 q não existe (só tem 8 areas abertas)
Ai qdo chega nesse trecho:
Código: Selecionar todos
Case Lastkey() = 27
...
Select (local12) //----> Da erro
Alguém saberia dizer o q é isso?
E se eu faço outro select() na sequencia (via debug) retorna a area correta
Area Fantasma? BASE/1002
Enviado: 19 Abr 2017 16:25
por fladimir
Fiz um teste assim, antes da linha
coloquei a linha:
Código: Selecionar todos
Local12 := SELECT() // pra mudar do 9 (q não tem) pra correta aberta
Local12 := ALIAS()
Ai não ocorre o problema de capturar VAZIO
Alguém já passou por isso?
Area Fantasma? BASE/1002
Enviado: 19 Abr 2017 16:53
por aferra
acredito que seja a forma que vc está abrindo as areas, veja o exemplo do manual
USE Customer ALIAS Cust
DbSelectArea(10)
USE Invoice ALIAS Inv
? Select() // result: 10
? Select( "Cust" ) // result: 1
? Select( "Inv" ) // result: 10
agora estiver abrindo sem determinar a area ai deve estar ficando algum dbf aberto.
Area Fantasma? BASE/1002
Enviado: 19 Abr 2017 19:26
por fladimir
Obrigado pelo retorno, mas não seria isso, pq se via Debug vemos no F6 q mostra as Workareas abertas (imagem 1) e tem 8 areas como q um simples Select() depois retorna 9 areas e se mandamos um Alias() retorna "" (vazio)? Não tem lógica.
Area Fantasma? BASE/1002
Enviado: 20 Abr 2017 14:00
por JoséQuintas
Pode ter sentido, se o Harbour abre a próxima área disponível, não precisa necessariamente ser número sequencial.
Costumo fazer o SELECT pelo número e não pelo nome.
Quando preciso pelo nome, uso:
Note que existe o comando SELECT e a funcão Select()
A diferença acaba sendo apenas o espaço em branco antes dos parêntesis.
Area Fantasma? BASE/1002
Enviado: 20 Abr 2017 18:53
por fladimir
pessoal, desculpa.... tinha uma rotina anterior q estava afetando.
Obrigado.
Area Fantasma? BASE/1002
Enviado: 20 Abr 2017 19:18
por alxsts
Olá!
Desconfiei desde o princípio...
Provavelmente um SELECT 0 à toa. Assim, de todas as áreas abertas, nenhuma estava selecionada. Consequentemente,Alias() retornava em branco...
JoséQuintas escreveu:se o Harbour abre a próxima área disponível, não precisa necessariamente ser número sequencial.
É isto mesmo que ocorre, conforme o
manual. Comando USE, cláusula NEW:
NEW opens <xcDatabase> in the next available work area making it the
current work area. If this clause is not specified, <xcDatabase> is
opened in the current work area.