Como saber qual RDD foi usado?

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Como saber qual RDD foi usado?

Mensagem 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ê?
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Mensagem 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.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem 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?
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem 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!
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem 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?
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem 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.
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem 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?
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem 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:

Código: Selecionar todos

use xxx 
index on xxx to xxx

use xxx index xxx via dbcdx
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem 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?
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem 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
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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. :)))
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem 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.
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem 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
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Nem me lembra isso. O Alexandre Silva que o diga. Outro dia ele usou meu avatar e eu aprontei uma pra ele. :))))))
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Responder