Outras arquivos são fechados com comando Use arquivo shared
Moderador: Moderadores
Outras arquivos são fechados com comando Use arquivo shared
Olá pessoal,
Tenho 22 arquivos abertos, quando tento abrir por exemplo o ARQUIVO18, ele abre normalmente, mas os arquivos anteriores são fechados, ou seja do ARQUIVO17 ate o ARQUIVO01, são fechados, pelo Debugador, verifiquei que eles fecham na linha USE ARQUIVO18 SHARED, não sei o que há de errado com essa função, em outras partes do sistema, quando há menos arquivos abertos, esse problema não acontece, não creio que aja uma quantidade excessiva de arquivos abertos.
HARBOUR 3.2.0(dev)
ARQUIVO1.DBF
.
.
.
ARQUIVO22.DBF
FUNCTION ABRE_18
SELECT 18
USE ARQUIVO18 SHARED <--- Nessa linha, os arquivos anteriores a ele, são fechados...
RETURN
Tenho 22 arquivos abertos, quando tento abrir por exemplo o ARQUIVO18, ele abre normalmente, mas os arquivos anteriores são fechados, ou seja do ARQUIVO17 ate o ARQUIVO01, são fechados, pelo Debugador, verifiquei que eles fecham na linha USE ARQUIVO18 SHARED, não sei o que há de errado com essa função, em outras partes do sistema, quando há menos arquivos abertos, esse problema não acontece, não creio que aja uma quantidade excessiva de arquivos abertos.
HARBOUR 3.2.0(dev)
ARQUIVO1.DBF
.
.
.
ARQUIVO22.DBF
FUNCTION ABRE_18
SELECT 18
USE ARQUIVO18 SHARED <--- Nessa linha, os arquivos anteriores a ele, são fechados...
RETURN
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Outras arquivos são fechados com comando Use arquivo shared
Ola!
Cadê o parâmetro "NEW" ?
Saudações,
Itamar M. Lins Jr.
Cadê o parâmetro "NEW" ?
Código: Selecionar todos
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.
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Outras arquivos são fechados com comando Use arquivo shared
Olá Pessoal,
Porter, quando você seleciona uma área e abre um arquivo, o arquivo aberto nessa área é fechado. Porém, não é seu caso, pois você está selecionando a área 18 e abrindo o arquivo, não deveria fechar nenhum outro. Você disse que somente nesse caso acontece isso, acho que há algo errado antes de você chamar essa função que está fechando os arquivos antes.
É que não sei se seu sistema trabalha chamando a área diretamente pelo número, se for (aliás desaconselhável), então fica complicado alterar, mas se não for o caso, ou seja, se você seleciona a área pelo nome do ALIAS, sugiro alterar sua função dessa forma:
Porter, quando você seleciona uma área e abre um arquivo, o arquivo aberto nessa área é fechado. Porém, não é seu caso, pois você está selecionando a área 18 e abrindo o arquivo, não deveria fechar nenhum outro. Você disse que somente nesse caso acontece isso, acho que há algo errado antes de você chamar essa função que está fechando os arquivos antes.
É que não sei se seu sistema trabalha chamando a área diretamente pelo número, se for (aliás desaconselhável), então fica complicado alterar, mas se não for o caso, ou seja, se você seleciona a área pelo nome do ALIAS, sugiro alterar sua função dessa forma:
Código: Selecionar todos
FUNCTION ABRE_18
IF SELECT( ARQUIVO18 ) = 0
USE ARQUIVO18 SHARED NEW
ELSE
SELECT ARQUIVO18
ENDIF
RETURNAbraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Outras arquivos são fechados com comando Use arquivo shared
Uma observação no fonte do Jairo, que até me deixou na dúvida.
Sempre usei com aspas
Não confundir o comando SELECT com a função Select(), é o mesmo nome, mas são coisas diferentes.
Uma coisa que uso no meu aplicativo é isto:
Se estiver aberto, retorna o número da área e já seleciona a área.
Se estiver fechado, retorna 0, e seleciona uma área nova.
Só cuidado com coisas deste tipo:
Isso não vai selecionar a área CLIENTE, isso apenas vai retornar o número da área e vai continuar na atual.
O espaço depois de select e antes dos parêntesis é que vai definir se é comando ou função.
Veja se não fez isso no seu fonte.
E como já foi dito pelo Itamar, outra opção é usar o NEW no comando USE.
Nota: O primeiro caso é pra se criar uma rotina de abrir arquivos, no uso normal basta o NEW, ou SELECT 0 antes de abrir.
Sempre usei com aspas
Código: Selecionar todos
Select( "arquivo18" )
Uma coisa que uso no meu aplicativo é isto:
Código: Selecionar todos
SELECT ( Select( "ARQUIVO18" ) )
USE arquivo18
Se estiver fechado, retorna 0, e seleciona uma área nova.
Só cuidado com coisas deste tipo:
Código: Selecionar todos
SELECT( CLIENTE )
GOTO TOP
O espaço depois de select e antes dos parêntesis é que vai definir se é comando ou função.
Veja se não fez isso no seu fonte.
E como já foi dito pelo Itamar, outra opção é usar o NEW no comando USE.
Nota: O primeiro caso é pra se criar uma rotina de abrir arquivos, no uso normal basta o NEW, ou SELECT 0 antes de abrir.
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/
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/
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Outras arquivos são fechados com comando Use arquivo shared
Tem razão José, é entre aspas:
Código: Selecionar todos
IF SELECT( "ARQUIVO18" ) = 0Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Outras arquivos são fechados com comando Use arquivo shared
Itamar, tá no fonte, área 18, é um jeito ruim de programar, mas também funciona.... rsCadê o parâmetro "NEW" ?
Código: Selecionar todos
SELECT 18
USE ARQUIVO18 SHARED
Se possível, não use número de área ou número pra índice.
Código: Selecionar todos
SELECT 0
USE CLIENTES
INDEX ON codcli TAG codigo
SET INDEX TO CLIENTES
SELECT 0
USE ESTOQUE
INDEX ON codpro TAG produto
SET INDEX TO ESTOQUE
SELECT CLIENTES
OrdSetFocus( "código" )
SELECT ESTOQUE
OrdSetFocus( "produto" )
Quanto ao SELECT 0, ou isso, ou a cláusula NEW, os dois tem o mesmo efeito.
Mesmo assim, isso não explica fechar todos os arquivos, no máximo fecharia o último.
A não ser que tenha feito a mesma coisa em todos os arquivos, sem selecionar área nova.
ou tenha um CLOSE DATABASES em algum ponto do fonte.
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/
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/
