Arquivos .DBT aumentar capacidade??
Moderador: Moderadores
Arquivos .DBT aumentar capacidade??
Olá gostaria de saber se é possível aumentar a capaciade de armazenamento, pois no meu programa abre normalmente e depois começa a embaralhar tudo. O que posso fazer...Obrigado
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Arquivos .DBT aumentar capacidade??
Olá!
Seja bem-vindo ao fórum Robinson!
Este tipo de arquivo costuma mesmo causar problemas. Tanto é que muitos abandonaram seu uso logo no princípio.
A capacidade do arquivo já está definida e você não poderá alterar. Cada registro do arquivo DBT poderá ter até 64Kb e o arquivo em si, no máximo 32Mb.
Tente abrir as tabelas que contem campos memo e fazer um COPY TO outra tabela. Depois exclua a antiga e renomeie a nova.
É possível migrar a sua base de dados para DBFCDX. Usando este driver, além de ser mais seguro, diminuirão os problemas com aquivos memo (que neste RDD tem a extensão .FPT), pois os mesmos são compactados.
Existe também um programa que lê a tabela DBFNTX com DBT e gera em DBFCDX com FPT: Mas você terá que migrar a base para DBFCDX.
Seja bem-vindo ao fórum Robinson!
Este tipo de arquivo costuma mesmo causar problemas. Tanto é que muitos abandonaram seu uso logo no princípio.
A capacidade do arquivo já está definida e você não poderá alterar. Cada registro do arquivo DBT poderá ter até 64Kb e o arquivo em si, no máximo 32Mb.
Tente abrir as tabelas que contem campos memo e fazer um COPY TO outra tabela. Depois exclua a antiga e renomeie a nova.
É possível migrar a sua base de dados para DBFCDX. Usando este driver, além de ser mais seguro, diminuirão os problemas com aquivos memo (que neste RDD tem a extensão .FPT), pois os mesmos são compactados.
Existe também um programa que lê a tabela DBFNTX com DBT e gera em DBFCDX com FPT:
Código: Selecionar todos
/*
DBT2FPT.PRG - Memo file converter by Loren Scott / SuccessWare 90, Inc.
This is a simple program demonstrating how to convert Clipper .DBT's
to FoxPro-compatible FPT's using the Clipper 5.2 DBFCDX RDD.
Compile: CLIPPER dbt2fpt /n/w
Link : BLINKER FI dbt2fpt LIB dbfcdx,clipper
---------------------------------------------------------------------
*/
#include "RDDSYS.CH"
REQUEST DBFCDX
FUNC DBT2FPT( cOldFile, cNewFile )
LOCAL aFile := {}
cOldFile := Upper( AllTrim( cOldFile ))
cNewFile := Upper( AllTrim( cNewFile ))
IF "." $ cOldFile
cOldFile := Left( cOldFile, at( ".", cOldFile )-1 )
ENDIF
IF "." $ cNewFile
cNewFile := Left( cNewFile, at( ".", cNewFile )-1 )
ENDIF
// Display a message
? "DBT2FPT - Memo File Converter"
?
// Make sure we got the correct parameters
IF PCOUNT() < 2
? "USAGE: DBT2FPT <oldfile> <newfile>"
?
? "where: <oldfile> = Name of the database containing the memo"
? " field to convert."
? " <newfile> = New file to create"
?
Return(1)
ENDIF
// Check for the original file
IF !File( cOldFile + ".DBF" )
? "Cannot find " + cOldFile + "!"
?
Return(2)
ENDIF
// Open the original file (using DBFNTX)
USE (cOldFile) VIA "DBFNTX"
// Set DBFCDX Driver as the default for creating new dbf
RDDSetDefault("DBFCDX")
// Show that we're doing something
? "Working"
// Now copy to the new file (with nifty UDF)
COPY TO (cNewFile) FOR ShowDot()
// Look, we made it!
?? "Done!"
?
// Clean up before leaving
CLOSE ALL
// Compare file sizes
aFile := Directory( cOldFile + ".DBT" )
? PadR( "Old " + cOldFile + ".DBT Size",21 ) + ": "
?? Str( aFile[1,2] ) + " bytes"
aFile := Directory( cNewFile + ".FPT" )
? PadR( "New " + cNewFile + ".FPT Size",21 ) + ": "
?? Str( aFile[1,2] ) + " bytes"
?
Return(0)
FUNC ShowDot()
?? "."
Return (.T.)
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Arquivos .DBT aumentar capacidade??
Como disse o colega Alexandre, esse tipo de campo MEMO (responsável pela existência do arquivo .DBT) sãoproblemáticos. Tem muito material aqui no fórum falando disso, veja este prara começar:
https://pctoledo.org/forum/viewto ... 398#p17337
Então aconselho a você se desfazer desse tipo de campo e partir para gerar arquivos individuais que cujo nome_de_arquivo esteja amarrado ao registro. Daí a criação e manutenção (edição do arquivo) sugiro que seja feita não com memowrit nem memoedit. Faça sua própria função seja importando para dbf e editando em tbrowse (por exemplo) ou uma função que trate tudo em baixo nível (com FOPEN/FCLOSE/FWRITE) pela razão que a princio os arquivos poderão ser muito grandes.
Então, os arquivos são muito grandes para cada registro ou são muitos em quantidade total de registros ? Se forem arquivo até 640k cada, então pode serem editados ou criados com MEMOWRIT.
https://pctoledo.org/forum/viewto ... 398#p17337
Então aconselho a você se desfazer desse tipo de campo e partir para gerar arquivos individuais que cujo nome_de_arquivo esteja amarrado ao registro. Daí a criação e manutenção (edição do arquivo) sugiro que seja feita não com memowrit nem memoedit. Faça sua própria função seja importando para dbf e editando em tbrowse (por exemplo) ou uma função que trate tudo em baixo nível (com FOPEN/FCLOSE/FWRITE) pela razão que a princio os arquivos poderão ser muito grandes.
Então, os arquivos são muito grandes para cada registro ou são muitos em quantidade total de registros ? Se forem arquivo até 640k cada, então pode serem editados ou criados com MEMOWRIT.
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.
Arquivos .DBT aumentar capacidade??
Para usar as funções MEMOEDIT, MEMOWRIT e etc do clipper, o tamanho máximo do arquivo é de 64Kbytes. Já no [x]harbour parece não ter mais este limite.Pablo César escreveu:Se forem arquivo até 640k cada
Abraços.
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg

