Página 1 de 1

Erro seek?

Enviado: 22 Ago 2021 13:28
por sergio.mordente
Boa tarde, primeira vez por aqui. Uso o Harbour ha anos e nunca tive este problema, estou sem entender o que acontece com seek. Tenho uma tabela com 220.000 registros indexada pelo campo noenv que é carácter, quando dou seek e o registo não é encontrado, ele posiciona no primeiro ao invés de retornar eof(). Alguém já passou por isto?

Erro seek?

Enviado: 22 Ago 2021 13:33
por Nascimento
vc usa ntx ou cdx? , passei algo parecido usando rdd ntx

as vezes achava as vezes não, depois que passei pra cdx sanou meu problema

Erro seek?

Enviado: 22 Ago 2021 14:17
por sergio.mordente
Obrigado pela rápida resposta. Eu uso ntx, mas nunca tive problema. Como defino a Harbour para cdx? Pode me indicar uma fonte na internet para pesquisa? Além do programa em Harbour também acesso as tabelas com Java e Php, tenho que verificar se os drives serão compatíveis.
Com ntx ele sempre acha quando existe o problema esta quando não existe, eu espero que avance para o ultimo registro o que retornaria eof(), mas esta apontando o primeiro registro.

Erro seek?

Enviado: 22 Ago 2021 14:36
por alxsts
Olá!

Seja bem-vindo ao fórum Sergio!

O tópico Migrar de NTX para CDX. Como proceder ? é antigo mas pode te ajudar. Deve haver outras informações relacionadas em outros tópicos. Habitue-se a utilizar o recurso de busca do fórum, no canto superior direito da página.

Erro seek?

Enviado: 22 Ago 2021 15:34
por Itamar M. Lins Jr.
Olá!
noenv que é carácter, quando dou seek e o registo não é encontrado, ele posiciona no primeiro ao invés de retornar eof().
Sem ver o código e sem um exemplo demonstrando o problema, não tem como ajudar.
Especular sob problema, mudar p/ CDX etc. Não identifica se é problema do NTX ou base corrompida.
Eu uso ntx, mas nunca tive problema.
Acredito que sempre funcionou ai o NTX, então porque só agora acontece isso ?

Se a base(DBF) estiver corrompida CDX não irá resolver.
Coloca o DBF zipado e o NTX com algum exemplo que demonstre o problema. Ai, mais pessoas poderão ajudar.

Saudações,
Itamar M. Lins Jr.

Erro seek?

Enviado: 22 Ago 2021 17:24
por JoséQuintas
Como já disseram, podem existir vários motivos.

O mais comum é índice corrompido.
Outro é erro do programador, por exemplo indexar por TRIM(), ou fazer pesquisa por TRIM()

INDEX ON TRIM( NOME ) TO INDICE

Isso é errado, vai criar o índice baseado no tamanho do primeiro resultado, que pode ser 1 letra ou até nenhuma.

Mas de um modo geral, o CDX é mais tradicionalmente usado, por NÃO SER exclusivo do Clipper, ter mais compatibilidade com outros programas, e reduzir a quantidade de arquivos abertos, coisa que no Clipper era muito importante, por causa da limitação do DOS.

Explicação de modo geral:
- CDX é um único arquivo, que pode conter até 50 índices diferentes, contando como um único arquivo aberto
- CDX é compactado, economizando espaço em disco
- CDX aceita chave de até 200 caracteres, enquanto NTX aceita somente até 100
- Por ser compactado, o uso em rede é muito mais rápido do que NTX, porque envolve menos informação pela rede
- Por só ter vantagens, e praticamente ter se tornado o índice padrão, o NTX não teve muita melhoria no Harbour
- CDX está presente no Clipper desde a versão 5.0, ele surgiu compatível com FOXBASE/FOXPRO, que mais tarde se tornou o Microsoft Visual FoxPro. Também está presente no Advantage Database Server, e sempre foi seguido por outras linhas de software, até mesmo em LINUX, onde o FOXBASE foi um dos primeiros a chegar, por já existir ANTES DO LINUX EXISTIR.
Como assim? cheguei a usar FOXBASE em XENIX, uma versão reduzida do UNIX, portada para funcionar em microcomputador nos tempos do 386 SX. Podemos dizer a grosso modo que LINUX é um UNIX open-source, dos tempos do DOS, e talvez até antes do Windows e/ou junto com Windows 3.1 (não lembro mais ao certo).

Erro seek?

Enviado: 20 Set 2022 01:31
por VICTORHG
Amigos,

Busco por uma licença do ADS, a partir de 15 usuários, alguém possui para venda ?

Erro seek?

Enviado: 20 Set 2022 07:45
por Itamar M. Lins Jr.
Olá!
Na Oracle vc deve encontrar.

Saudações,
Itamar M. Lins Jr.