CDX nao indexa no WTS
Moderador: Moderadores
-
Paulo Pereira
- Usuário Nível 2

- Mensagens: 79
- Registrado em: 28 Abr 2011 00:29
- Localização: Joinville / SC
CDX nao indexa no WTS
Esto mudando NTX para CDX..
No meu micro funciona perfeito, MAS no cliente quando acesso via WTS, nao esta funcionando.
No cliente tem 2 pastas \matriz \loja , na pasta loja o sistema procura por arquivos da pasta \matriz (como clientes, produtos)
Isso funciona legal no meu micro..
O que tem de diferente no cliente é que essas pastas ficam em
\dados\sistemas\matriz e \dados\sistema\loja
No cliente essa pasta \dados\sistema\matriz esta mapeada como F:\matriz
no wts nao exerga assim, a pasta esta como \dados\sistema\matriz, entao se estou em modo WTS
uso esse caminho,
Quando tem um caminho antes do nome do arquivo ai é que nao indexa..
O arq. cdx é criado com tamanho bem menor.. abri com editor de texto e nao tem os dados das chaves..
só um cabeçario, isso resulta que ao fazer um set order, dá msg : Area nao indexada..
Porque isso acontece na sessao do WTS ??
No meu micro funciona perfeito, MAS no cliente quando acesso via WTS, nao esta funcionando.
No cliente tem 2 pastas \matriz \loja , na pasta loja o sistema procura por arquivos da pasta \matriz (como clientes, produtos)
Isso funciona legal no meu micro..
O que tem de diferente no cliente é que essas pastas ficam em
\dados\sistemas\matriz e \dados\sistema\loja
No cliente essa pasta \dados\sistema\matriz esta mapeada como F:\matriz
no wts nao exerga assim, a pasta esta como \dados\sistema\matriz, entao se estou em modo WTS
uso esse caminho,
Quando tem um caminho antes do nome do arquivo ai é que nao indexa..
O arq. cdx é criado com tamanho bem menor.. abri com editor de texto e nao tem os dados das chaves..
só um cabeçario, isso resulta que ao fazer um set order, dá msg : Area nao indexada..
Porque isso acontece na sessao do WTS ??
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
CDX nao indexa no WTS
Mostrar como está abrindo o DBF, Indice e etc..
Será que ninguém estava usando em quanto estava tentando indexar ?
Será que ninguém estava usando em quanto estava tentando indexar ?
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
-
Paulo Pereira
- Usuário Nível 2

- Mensagens: 79
- Registrado em: 28 Abr 2011 00:29
- Localização: Joinville / SC
CDX nao indexa no WTS
Com certeza ninguem estava usando...
Acho que o Problema é que o caminho real é \dados\sistema\matriz e o pessoal de rede fez um SUBST
entao o aparce no prompt F:\MATRIZ F:\LOJA
É muito estranho porque já roda em Harbour, mas em NTX. se mudo para CDX, nao indexa arquivos que tenham o caminho completo no arq.dbf..
Outros clientes, com harbour e cdx, estao ok
A parte central da funcao que faz a indexacao é essa:
Onde Cindice é o nome do indice, tipo cliente1, cliente2, etc
Acho que o Problema é que o caminho real é \dados\sistema\matriz e o pessoal de rede fez um SUBST
entao o aparce no prompt F:\MATRIZ F:\LOJA
É muito estranho porque já roda em Harbour, mas em NTX. se mudo para CDX, nao indexa arquivos que tenham o caminho completo no arq.dbf..
Outros clientes, com harbour e cdx, estao ok
A parte central da funcao que faz a indexacao é essa:
Onde Cindice é o nome do indice, tipo cliente1, cliente2, etc
Código: Selecionar todos
FOR nInd = 1 TO LEN(_aVetArquivo[nArq])
cChave := _aVetArquivo[nArq,nInd,dfChaveInd]
cIndice := _aVetArquivo[nArq,nInd,dfNomeInd]
cOrdem := _aVetArquivo[nArq,nInd,dfOrdem]
IF cOrdem = NIL .or. UPPER(cOrdem) = "A"
if vehcdx // sem o tag cria idx (varios)
INDEX ON &(cChave) TAG &(cIndice) // cria nome do arquivo.cdx
else
INDEX ON &(cChave) to &(cIndice)
endif
ENDIF
NEXT
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
CDX nao indexa no WTS
Amiguinho
Seu sistema tem o Set Default apontado para a pasta onde estão os dados?
Se estiver, desconfie dele, pois mesmo colocando este comando pode haver este problema.
Minha dica é voce colocar o caminho direto. Poderá ficar um pouco feio, mas ficará seguro.
Para não engessar seu aplicativo a algum diretório crie uma variável que capture as informações fisicas da pasta em que o sistema esta:
Se o seu Harbour possuir as funções CurDrive() e CurDir() beleza, senão verifique quais bibliotecas possuem estas funções, tentar HBCT ou HBNF.
Seu sistema tem o Set Default apontado para a pasta onde estão os dados?
Se estiver, desconfie dele, pois mesmo colocando este comando pode haver este problema.
Minha dica é voce colocar o caminho direto. Poderá ficar um pouco feio, mas ficará seguro.
Para não engessar seu aplicativo a algum diretório crie uma variável que capture as informações fisicas da pasta em que o sistema esta:
Código: Selecionar todos
cCaminho := CurDrive()+"\"+Curdir()+"\"
FOR nInd = 1 TO LEN(_aVetArquivo[nArq])
cChave := cCaminho + _aVetArquivo[nArq,nInd,dfChaveInd]
cIndice := cCaminho + _aVetArquivo[nArq,nInd,dfNomeInd]
cOrdem := _aVetArquivo[nArq,nInd,dfOrdem]
IF cOrdem = NIL .or. UPPER(cOrdem) = "A"
if vehcdx // sem o tag cria idx (varios)
INDEX ON &(cChave) TAG &(cIndice) // cria nome do arquivo.cdx
else
INDEX ON &(cChave) to &(cIndice)
endif
ENDIF
NEXT
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
CDX nao indexa no WTS
Só deparei-me quando você disse:
Use (Chr(34)+"\matriz \loja1"+Chr(34)+"\clientes")
Quando é informado o caminho, este não pode conter espaços ao menos que esteja englobado por aspas. Isto é, além de compor a concatenação, você deve colocar aspas no inicio e no final, caso o path contenha espaços.No cliente tem 2 pastas \matriz \loja
Quando tem um caminho antes do nome do arquivo ai é que nao indexa..
Use (Chr(34)+"\matriz \loja1"+Chr(34)+"\clientes")
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
-
Paulo Pereira
- Usuário Nível 2

- Mensagens: 79
- Registrado em: 28 Abr 2011 00:29
- Localização: Joinville / SC
CDX nao indexa no WTS
Essa questao do nome , nao é , nao uso espacos em nome de arquivo, tb nao usao mais de 8 carcateres..
Qundo entro via wts o sistema está lá na pasta C:\dados\sistema\fabrica e é esse o caminho real
mas na empresa, o caminho é F:\FABRICA, ENTAO TENHO QUE fazer 2 caminhos conforme o modo como esta sendo acessado..
Tem tb, 2 estacoes TIM client (buxa) que tb nao enxergam com F:\FABRICA, e sim como C:\dados\sistema\fabrica
Estou com esse problema, vou fazer mais testes..
Interessante como no NTX, com as mesmas funcoes, mesmos caminhos, funciona 100%.
Qundo entro via wts o sistema está lá na pasta C:\dados\sistema\fabrica e é esse o caminho real
mas na empresa, o caminho é F:\FABRICA, ENTAO TENHO QUE fazer 2 caminhos conforme o modo como esta sendo acessado..
Tem tb, 2 estacoes TIM client (buxa) que tb nao enxergam com F:\FABRICA, e sim como C:\dados\sistema\fabrica
Estou com esse problema, vou fazer mais testes..
Interessante como no NTX, com as mesmas funcoes, mesmos caminhos, funciona 100%.
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
CDX nao indexa no WTS
Amiguinho,
Quando voce faz acesso a uma máquina via TS voce esta acessando o host como servidor. Voce praticamente esta acessando a maquina raiz como se estivesse nela, então não existe acesso a F:\ pois voce esta no próprio equipamento.
Se o caminho é F:\FABRICA quando voce esta na empresa eu presumo:
1-Voce esta acessando o servidor através de um terminal.
2-Voce esta no servidor, e este possui várias partições e uma dela é F:
Se voce esta no servidor voce(visualmente e real) visualiza as partições que existem nele.
Se voce acessar o servidor via TS voce(visualmente e real) visualiza as mesmas partições que existem nele. O TS não vai mudar letras.
Pelo TS talvez seja possivel visualizar os campatilhamentos e até utiliza=los, mas convenhamos. Se eu tenho acesso direto a Deus porque vou usar um Santo.
Concluindo, no TS ao acessar o servidor, esqueça F:\matriz pois voce só enchergará as pastas fisicas sistema.
Quando voce faz acesso a uma máquina via TS voce esta acessando o host como servidor. Voce praticamente esta acessando a maquina raiz como se estivesse nela, então não existe acesso a F:\ pois voce esta no próprio equipamento.
Se o caminho é F:\FABRICA quando voce esta na empresa eu presumo:
1-Voce esta acessando o servidor através de um terminal.
2-Voce esta no servidor, e este possui várias partições e uma dela é F:
Se voce esta no servidor voce(visualmente e real) visualiza as partições que existem nele.
Se voce acessar o servidor via TS voce(visualmente e real) visualiza as mesmas partições que existem nele. O TS não vai mudar letras.
Pelo TS talvez seja possivel visualizar os campatilhamentos e até utiliza=los, mas convenhamos. Se eu tenho acesso direto a Deus porque vou usar um Santo.
Uma pasta mapeada pode/deve ser acessada por terminais na mesma rede e portanto visivelmente encontradas nesta rede.\dados\sistema\matriz esta mapeada como F:\matriz
Concluindo, no TS ao acessar o servidor, esqueça F:\matriz pois voce só enchergará as pastas fisicas sistema.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
CDX nao indexa no WTS
Rochinha, o comando do DOS SUBST, permite criar partições "virtuais". Por exemplo, meu sistema esta em uma pasta com nome muito longo ou vários níveis de pastas,rochinha escreveu:1-Voce esta acessando o servidor através de um terminal.
2-Voce esta no servidor, e este possui várias partições e uma dela é F:
Código: Selecionar todos
C:\document and settings\meu computador\agora seu computador\mais uma pasta aqui\
Verifique, que para cada usuário que loga usando o WTS este procedimento esteja sendo feito.
Nesse caso, verifique a rotina que cria os CDX. O trecho que voce postou não dá para sabermos o conteúdo do array que contem os parâmetros de criação dos índices. Talvez esteja criando apenas o primeiro índice dentro do CDX e pulando para criar os índices dos próximos DBFs. Resumindo, a mesma rotina que usava para criar NTX não criará os CDX corretamente sem que haja adequação.Paulo Pereira escreveu:Interessante como no NTX, com as mesmas funcoes, mesmos caminhos, funciona 100%.
Espero ter ajudado.
Abraços
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
CDX nao indexa no WTS
Amiguinhos,
Tenho pra mim que este nome real com espaços possa causar problemas, pois quando trabalhamos com nomes longo sempre precisamos sacar de usar algumas funções para reduzir este problema.
Mas acho que não se trata de um problema só do S.O. mas tenho problemas com o Harbour em relação ao CDX também.
O comando USE funciona bem quando o caminho é ambientado por Set Default. Mas se dou um USE...INDEX o indice na abre.
Por isto a dica de acrescentar os caminho fisicos ao comando.
Vale lembrar também que mapeamentos e substs são atalhos para "Ingles Ver", ou seja, vemos que realmente mudou, mas em algum momento, alguma rotina nossa pode não enxergar isto.
Em segundo lugar a pasta Documents and Settings é volátil e insegura, qualquer problema com o S.O. e ela pode ser renovada pelo mesmo com parâmetros padrão.
Quando o aplicativo acessar F:\AlgumaCoisa, o SUBST, irá conversar com ele e lhe dizer qual caminho a seguir, se o comando não conseguir interpretrar o nome longo com certeza não seguirá em frete. O SUBST apenas indicou o caminho, não cabendo a ela resolver os problemas do comando.
Agora para resolver e diminiuir os riscos, "acho" que o melhor é "fugir" destes caminhos.
Para mim foi a unica solução.
Tenho pra mim que este nome real com espaços possa causar problemas, pois quando trabalhamos com nomes longo sempre precisamos sacar de usar algumas funções para reduzir este problema.
Mas acho que não se trata de um problema só do S.O. mas tenho problemas com o Harbour em relação ao CDX também.
O comando USE funciona bem quando o caminho é ambientado por Set Default. Mas se dou um USE...INDEX o indice na abre.
Por isto a dica de acrescentar os caminho fisicos ao comando.
Vale lembrar também que mapeamentos e substs são atalhos para "Ingles Ver", ou seja, vemos que realmente mudou, mas em algum momento, alguma rotina nossa pode não enxergar isto.
Em segundo lugar a pasta Documents and Settings é volátil e insegura, qualquer problema com o S.O. e ela pode ser renovada pelo mesmo com parâmetros padrão.
Quando o aplicativo acessar F:\AlgumaCoisa, o SUBST, irá conversar com ele e lhe dizer qual caminho a seguir, se o comando não conseguir interpretrar o nome longo com certeza não seguirá em frete. O SUBST apenas indicou o caminho, não cabendo a ela resolver os problemas do comando.
Agora para resolver e diminiuir os riscos, "acho" que o melhor é "fugir" destes caminhos.
Para mim foi a unica solução.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
CDX nao indexa no WTS
Do modo que foi projetado, concordo plenamente com o colega, ao menos que faça uma restruturação de diretórios com subdiretórios.Agora para resolver e diminiuir os riscos, "acho" que o melhor é "fugir" destes caminhos.
Desconheço o motivo de estarem separados dessa forma, mas ao invés de colocar em diretórios diferentes não daria para colocar em subdiretórios ? A solução, na minha opinião, seria você re-estruturar o seu sistema e a forma que abre o seus dbfs, a sugestão é:
Crie uma pasta chamado Sistema, posicione-se na pasta Sistema e abra dois novos subdiretórios matriz e filial. Copie nesses subdiretórios o conteúdo das mesmas. Para abrir os seus respectivos dbfs, bastará você saber qual é o diretório atual e adicione "matriz" ou "filial" mais o nome dos dbfs (concatenando o caminho e nome do dbf, como no exemplo abaixo) sem precisar se posicionar nos subdiretórios (evite isso). Eu uso assim há anos e recomendo. No entanto o que você precisa é sempre posicionar-se no diretório principal do sistema, onde estaria o programa em si.
Eu eliminaria o subst e não reposiciono jamais no subdiretório de dentro do programa. Olha como eu acostumo fazer:
Código: Selecionar todos
cDir:=DirName()
cDbf1=cDir+"\MATRIZ\CLIENTES.DBF"
cDbf2=cDir+"\FILIAL\VENDAS.DBF"
USE (cDbf1)
USE (cDbf2)Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
CDX nao indexa no WTS
Só para constar:
Ate+
Ainda acho que podemos achar uma possível causa vendo o código fonte do colega.- Não uso SUBST para uso do meus sistemas, então não posso afirmar se funciona ou não usando o redirecionamento de nomes longos. Sempre crio diretórios com no máx. 8 caracteres;
- Não instalo meus sistemas usando nenhuma das pastas do Windows, crio uma pasta sempre na raiz.
Ate+
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
CDX nao indexa no WTS
Olá Pessoal,
Eu concordo com o Andril, as vez a coisa está na nossa cara mas agente não consegue ver, postando as vez os colegas vem e matam a charada...
Eu concordo com o Andril, as vez a coisa está na nossa cara mas agente não consegue ver, postando as vez os colegas vem e matam a charada...
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
