Página 1 de 2
Como saber qual RDD foi usado?
Enviado: 10 Out 2007 09:08
por Eolo
Eu tenho 3 arquivos (não criados por mim): XPTO.dbf, XPTO.001 e XPTO.002.
Dei uma olhada em baixo nível no 001 e no 002 e constatei que eles são índices. Então setei o XHarbour pra usar o NTX como default e consegui abrir o XPTO.dbf com os dois, que funcionaram perfeitamente, em ambas as ordens.
Só que preciso reconstruir esses indices e, obviamente, usando o mesmo RDD original, já que eles vão ser usados por um EXE de terceiros...
A questão é: o fato de eu ter conseguido abrir os arquivos com o NTX é 'prova' 100% confiável que os mesmos foram criados pelo NTX? Ou seja, se eu setar por exemplo o CDX e tentar abrir um NTX vai dar algum runtime error, corruption ou sei lá o quê?
Enviado: 10 Out 2007 14:01
por gvc
Uma forma de verificar é ver se tem campo memo no DBF.
Se o correspondente é DBT, foi usado o RDDNTX.
Se for FPT, foi usado o RDDCDX.
Mesmo com o RDDNTX eu ainda não encontrei como determinar se o ntx foi criado com filtro (index on ... to ... for <condição>).
Eu teria que abrir o arquivo de indice e examinar bit a bit.
O CDX é um arquivo hierarquico. Pode ter mais de uma ordem dentro dele. Então não seria necessário mais de um arquivo.
Ah! Só para constar. Se for usado indice composto, para reindexar os arquivos, seu sistema deve conter a função do usuário.
Lembrando que indice composto usa função do usuário ou dados relacionados de outros arquivos.
Respondendo a questão. Sim. O tratamento interno do NTX é diferente do CDX.
Enviado: 10 Out 2007 15:57
por Eolo
Uma forma de verificar é ver se tem campo memo no DBF
Não, não tem campo memo.
O CDX é um arquivo hierarquico. Pode ter mais de uma ordem dentro dele. Então não seria necessário mais de um arquivo.
Vc pode usar a RDD CDX sem TAGs, criando um arquivo para cada índice, com extensão IPX (ou outra)... No meu caso específico, o arquivo 001 poderia ser um IPX e, o 002, outro...
Respondendo a questão. Sim. O tratamento interno do NTX é diferente do CDX.
Que o tratamento é diferente eu sei. A minha questão é outra: se eu criar um índice com o NTX e tentar depois abrir com o CDX, o que acontece? Abre? Funciona? Dá runtime error? Corruption detected?
Recapitulando: tem algum jeito de o Eolo saber com que RDD um determinado arquivo indice foi criado (pelo GVC), de forma a que o Eolo possa reindexar o arquivo usando a mesma RDD que o GVC usou, não se sujeitando a possíveis (possíveis?) erros?
Enviado: 10 Out 2007 16:13
por Stanis Luksys
Vamos lá,
Eu sugiro o seguinte. Já que conseguiu abrir o índice, deve ser NTX, basta descobrir a chave:
Código: Selecionar todos
USE XPTO INDEX XPTO.001, XPTO.002
cChave1 = IndexKey( 1 )
cChave2 = IndexKey( 2 )
Depois, sabendo a chave, basta reconstruir com o RDD de sua preferência.
Falou!
Enviado: 10 Out 2007 16:48
por Eolo
Depois, sabendo a chave, basta reconstruir com o RDD de sua preferência.
Stanis, a chave eu sei. Bastou olhar dentro dos arquivos indice...
O problema, como eu disse no primeiro post,
NÃO é reconstruir o índice com o RDD da minha preferência! O problema é reconstruir o índice usando o mesmo RDD que foi usado originalmente, pq esse arquivo que eu vou recriar vai ser usado pelo EXE que o criou... Sacou?
Se ele foi criado - pelo EXE original - com o CDX e eu o recriar com o NTX, vai rodar em baixo do EXE original?
Enviado: 10 Out 2007 17:41
por Stanis Luksys
Então não entendi, pois se você abriu com o RDD DBFNTX é evidente que o índice foi criado neste padrão.
Até porque se fosse CDX, esses dois arquivos provavelmente já teriam somados mais de 16 chaves de índices.
Enviado: 10 Out 2007 18:22
por Eolo
Então não entendi, pois se você abriu com o RDD DBFNTX é evidente que o índice foi criado neste padrão.
Bão, evidente pra vc que sabe a resposta. Pra mim, não. Tanto que perguntei no começo:
A questão é: o fato de eu ter conseguido abrir os arquivos com o NTX é 'prova' 100% confiável que os mesmos foram criados pelo NTX?
Então, com base no que vc disse em seu último post, posso assumir, com 100% de certeza, que "se eu consigo abrir um arquivo com o RDD NTX, isto quer dizer que ele foi criado com o RDD NTX, sem nenhuma sombra de dúvida"? É isso?
Em outras palavras:
nenhum RDD consegue nem abrir um arquivo que não tenha sido criado por ele mesmo? É isso? E, se eu usar por exemplo o CDX pra abrir um arquivo criado pelo NTX, vai dar um runtime error?
Enviado: 10 Out 2007 21:52
por Stanis Luksys
Eolo escreveu:E se eu usar por exemplo o CDX pra abrir um arquivo criado pelo NTX, vai dar um runtime error?
Jânio, sinceramente...
Se você tem o clipper instalado no seu computador, você descobre isso em 2 minutos. Teste. Você está desde as 9:00 da manhã procurando uma informação que poderia ter obtido sozinho, simples como:
Enviado: 10 Out 2007 22:09
por Eolo
Jânio, sinceramente...
Putz, deu algum pau aqui no meu PC.
Num to vendo o post do Jânio...
O que o Jânio disse?
Enviado: 10 Out 2007 22:20
por Stanis Luksys
hjahahahaha
Foi a imagem de exibição que me confundiu.... muita informação pra minha cabeça cansada essa hora! Já é a segunda vez que confundo por causa disso... Pior respondi ainda ha pouco e vi que não era ele.
Bom, de qualquer forma, vale pra você o que eu disse a ele, alias só disse porque achei que fosse ele, que sei ter conhecimento pra fazer este programinha simples pra testar o erro.
Isso aí, tentou com o programinha que eu exemplifiquei?
Falou e foi mal ...
Ah, acontece, ja me chamaram de satanis também.
:(Neg
Enviado: 10 Out 2007 22:27
por Maligno
A questão é: o fato de eu ter conseguido abrir os arquivos com o NTX é 'prova' 100% confiável que os mesmos foram criados pelo NTX?
Eu diria que é 200% confiável. A estrutura de um NTX é absurdamente diferente de um índice composto.
Enviado: 10 Out 2007 22:28
por Maligno
Foi a imagem de exibição que me confundiu....
Ah, eu caí nessa também. Esse negócio de compartilhamento de avatar causa uma confusão danada.

))
Enviado: 10 Out 2007 22:30
por Stanis Luksys
Maligno escreveu:Eu diria que é 200% confiável. A estrutura de um NTX é absurdamente diferente de um índice composto.
Eu sei que sim, mas eu quis apenas demonstrar que ele poderia fazer essa verificação, e responder a pergunta "E se eu usar por exemplo o CDX pra abrir um arquivo criado pelo NTX, vai dar um runtime error?" em apenas duas linhas de PRG.
Melhor que esperar 13 horas pela resposta, que de repente pode ser de alguém que até está fazendo isso para responder.
Enviado: 10 Out 2007 22:34
por Stanis Luksys
Maligno escreveu:Ah, eu caí nessa também. Esse negócio de compartilhamento de avatar causa uma confusão danada.

))
Pois é, já pensou eu vir de Dr. Evil amanhã e ainda reclamar se me chamarem de Maligno... hehehe
Enviado: 10 Out 2007 22:37
por Maligno
Nem me lembra isso. O Alexandre Silva que o diga. Outro dia ele usou meu avatar e eu aprontei uma pra ele.

)))))