Jump to content
Fivewin Brasil

DBT corrompido...


Yury

Recommended Posts

olá pessoal,

lascou...

tenho uma aplicação em DOS/clipper 5.2 em que o DBT perdeu a ligação com o DBF (o campo memo do registro DBF está apresentando o conteúdo errado, de outro registro)...

alguém sabe se há possibilidade de consertar ou mesmo extrair as informações do DBT ?

obrigado e um abraço

Yury Marcelino Al

vimansca@vimansca.com.br

yury030575@yahoo.com.br

skype: yury.marcelino.al

Leme / SP

FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.62

Link to comment
Share on other sites

olá pessoal,

lascou...

tenho uma aplicação em DOS/clipper 5.2 em que o DBT perdeu a ligação com o DBF (o campo memo do registro DBF está apresentando o conteúdo errado, de outro registro)...

alguém sabe se há possibilidade de consertar ou mesmo extrair as informações do DBT ?

obrigado e um abraço

Yury Marcelino Al

vimansca@vimansca.com.br

yury030575@yahoo.com.br

skype: yury.marcelino.al

Leme / SP

FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.62

Link to comment
Share on other sites

olá Luiz,

obrigado pela resposta, mas infelizmente não resolveu...

se alguém tiver uma outra sugestão...

obrigado e um abraço

Yury Marcelino Al

vimansca@vimansca.com.br

yury030575@yahoo.com.br

skype: yury.marcelino.al

Leme / SP

FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.62

Link to comment
Share on other sites

citação:

olá Luiz,

obrigado pela resposta, mas infelizmente não resolveu...

se alguém tiver uma outra sugestão...

obrigado e um abraço

Yury Marcelino Al

vimansca@vimansca.com.br

yury030575@yahoo.com.br

skype: yury.marcelino.al

Leme / SP

FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.62


id=quote>id=quote>

Yury,

Normalmente há alguma lógica na meleca feita.

Tipo: o conteúdo dos campos memo estão X registros abaixo ou acima do registro correto do dbf, a partir de um determinado RECNO()

Se você descobrir qual a "ilógica", basta duplicar o dbf/dbt e fazer um programinha para gravar do memo errado para o memo certo.

Agora, isso aconteceu comigo há uns 20 anos, e, depois, NUNCA MAIS usei o mardito e não aconselho ninguém a usar.

assinatpaulo.jpg

Link to comment
Share on other sites

olá Paulo,

acho q vc foi muito bondoso com o nosso velho DBT, maldito, amaldiçoado, filho da mãe, sem-vergonha, etc...

felizmente consegui restringir o dano no arquivo do cliente, graças a uma copia, acho q foram perdidos mais ou menos dez registros que podem ser refeitos...

mas já estou trabalhando para substituir em todas as aplicações urgentemente...

de qualquer forma, obrigado e um abraço

Yury Marcelino Al

vimansca@vimansca.com.br

yury030575@yahoo.com.br

skype: yury.marcelino.al

Leme / SP

FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.62

Editado por - yury on 03/05/2007 17:18:42

Link to comment
Share on other sites

Fala meu amigo Paulo Araujo

Essa é como muitas outras que concordamos

DBT é uma porcaria mesmo.

Tive uns paus a anos atrás e nunca mais usei.

Yuri, se voce desejar, vai aqui uma dica para voce jogar fora o DBT

Exemplo:

Cadastro de Cliente e um memo para colocar observações do Cliente.

Chave do cliente CLIENTE NUMERIC 6

Crio um DBF que seria o texto

CLIENTEST.DBF

CLIENTE NUMERIC 6

TEXTO CHARACTER 70 ( SERIA CADA LINHA DO MEU TEXTO )

Monto o texto

cTexto:=''

(oCLIENTEST:cAlias)->(DbSeek(Str(oCLIENTES:CLIENTE,6)))

While (oCLIENTEST:cAlias)->(!Eof()) .AND. (oCLIENTEST:cAlias)->CodRef = oCLIENTES:CLIENTE

cTexto = cTexto + TRIM((oCLIENTEST:cAlias)->Texto)+CRLF

(oCLIENTEST:cAlias)->(DbSkip())

End

Endif

PARA APRESENTAR

REDEFINE GET oMemo VAR cTexto MEMO;

ID 4004 FONT oFont2;

OF oFldr:aDialogs[3];

UPDATE

PARA GRAVAR

(oCLIENTEST:cAlias)->(DbSeek(Str(oCLIENTES:CLIENTE,6)))

While (oCLIENTEST:cAlias)->(!Eof()) .AND. (oCLIENTEST:cAlias)->CodRef = oCLIENTES:CLIENTE

(oCLIENTEST:cAlias)->(DbLockRec())

(oCLIENTEST:cAlias)->(DbDelete())

(oCLIENTEST:cAlias)->(DbUnlock())

(oCLIENTEST:cAlias)->(DbSkip())

End

nLines := MlCount(cTexto,70)

For nFor := 1 To nLines

cLine:= MemoLine(cTexto,70,nFor)

(oCLIENTEST:cAlias)->(DbApndRec())

(oCLIENTEST:cAlias)->CodRef:= oCLIENTES:CLIENTE

(oCLIENTEST:cAlias)->Texto := cLine

(oCLIENTEST:cAlias)->(DbCommit())

Next

José Carlos

Guarulhos-SP

FW 2.0 / Clipper 5.2e / WS | FWH 2.7 / xHarbour 99.51 / xDev / Pelles / SqlLib(MySql)

Editado por - jcleoner on 03/05/2007 21:48:44

Link to comment
Share on other sites

olá Zé Carlos, obrigado pela dica...

estou substituindo de uma forma parecida, porém um arquivo de "texto" somente para todos os arquivos da aplicação, sendo que a chave deste arquivo fica com o ID do arquivo e o ID do registro...

um abraço

Yury Marcelino Al

vimansca@vimansca.com.br

yury030575@yahoo.com.br

skype: yury.marcelino.al

Leme / SP

FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.62

Link to comment
Share on other sites

  • 3 weeks later...

Já tive um problema semelhante. Lembro-me que resolvi da seguinte forma:

1 - Criei um outro dbf com outro nome e estrutura idêntica, mas sem o campo memo, e dei um append from do arquivo baleado para ele

2 - Apaguei o arquivo dbf com problema, só o dbf

3 - Criei em seguida o campo memo nesse novo dbf e renomeei esse novo dbf, só o dbf para o nome original.

Desta forma ele passou a fazer o link correto com os registros do dbt associado. Favor tantar mas antes faça um backup do arquivo.

bs.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...