Area Fantasma? BASE/1002

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Area Fantasma? BASE/1002

Mensagem por fladimir »

Dá uma olhada no print abaixo (08 areas abertas):
8 Areas abertas
8 Areas abertas
Captura de tela em 2017-04-19 15-01-10.png (8.64 KiB) Exibido 1170 vezes
Print antes do erro
Resultado do Select "9" Areas
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
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Area Fantasma? BASE/1002

Mensagem por fladimir »

Fiz um teste assim, antes da linha

Código: Selecionar todos

Local12 := ALIAS()
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?
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
aferra
Usuário Nível 1
Usuário Nível 1
Mensagens: 41
Registrado em: 30 Mai 2008 06:55
Localização: Ribeirão Preto/SP

Area Fantasma? BASE/1002

Mensagem 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.
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Area Fantasma? BASE/1002

Mensagem 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.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20420
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

Area Fantasma? BASE/1002

Mensagem 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:

Código: Selecionar todos

SELECT ( Select( cAlias ) )
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.
José M. C. Quintas
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (Linux/Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Area Fantasma? BASE/1002

Mensagem por fladimir »

pessoal, desculpa.... tinha uma rotina anterior q estava afetando.

Obrigado.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
alxsts
Colaborador
Colaborador
Mensagens: 3110
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Area Fantasma? BASE/1002

Mensagem 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.
[]´s
Alexandre Santos (AlxSts)
Responder