La Web del Programador: Comunidad de Programadores
 
    Pregunta:  2187 - PROBLEMAS CON EXTENSION DBT
Autor:  Alvaro Rodriguez Camacho
Hola a todos.
tengo una aplicacion en clipper 5.0 y en la cual una base de datos tiene un campo memo, lo cual me genera una base de datos con extension DBT. El problemas es que cuando borro un registro con delete / pack, el registro se borra de la DBF pero no de la DBT por lo que el tamaƱo de la DBT crece incesantemente, sin que pueda disminuirla.
Si alguien sabe como le agracedeceria.

  Respuesta:  Vicente Serrano
//te mando el codigo que yo uso.

//////AJUSTE DE BASES Y MEMOS
AJU_MEMO ()
RETURN
** --------------
function AJU_MEMO
local cNomFi
@21,42 say "COMPACTANDO"
SELECT 1
USE APARATOS
COPY TO TEMP FOR .NOT. DELETE()
USE
cNomFi:="APARATOS.DBF"
erase (cNomFi)
cNomFi:="APARATOS.DBT"
erase (cNomFi)

rename TEMP.DBF TO APARATOS.DBF
rename TEMP.DBT TO APARATOS.DBT
///luego reindexo/////////////

@21,42 say "REINDEXANDO"
////////////////
IF FILE ("CODAPARA.NTX")
ERASE ("CODAPARA.NTX")
ENDIF
IF FILE ("MODAPARA.NTX")
ERASE ("MODAPARA.NTX")
ENDIF
IF FILE ("SERAPARA.NTX")
ERASE ("SERAPARA.NTX")
ENDIF

SELECT 1
USE APARATOS
INDEX ON COD TO CODAPARA
index ON SERIE TO SERAPARA
INDEX ON SUBSTR(MAR,1,15)+SUBSTR(MODE,1,10) TO MODAPARA
SET INDEX TO CODAPARA,MODAPARA,SERAPARA
REINDEX
USE
return
///////////////////