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 1110 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: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

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, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, 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: 3092
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