Delphi - BORRAR REGISTROS

 
Vista:

BORRAR REGISTROS

Publicado por FABIO ANDRES (1 intervención) el 15/01/2001 00:00:00
Hola Amigos de la programacion. Tengo una inquietud; como puedo hacer un pack a una tabla hecha en paradox (*.dbf) y manejada desde una aplicacion construida en C++ Builder, esto lo quiero porque cuando borro un registro desde esta aplicacion el el registro es eliminado logicamente, pero en realidad el borrado fisico lo hace cuando termino la aplicacion.
Necesito que el borrado fisico sea efectivo inmediatamente elimine el registro desde el programa.
Yo conozco la opcion desde el Database Desktop pero la necesito en modo ejecucion. Muchas Gracias por su pronta colaboracion
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:BORRAR REGISTROS

Publicado por hernan (11 intervenciones) el 25/01/2001 17:03:53
No conozco C++ Builder pero en Delphi se hace de esta manera (Disculpa el desorden en el código) para paradox y para dbf:
Debes incluir BDE en las uses


procedure PackDBF(Tabla: TTable);
begin
Check(DbiPackTable(Tabla.DBHandle, Tabla.Handle, nil, szDBASE, True))
end;


Pero cuidado, para poder compactar la tabla, ésta debera estar abierta en modo exclusivo

Ejemplo:




{Cerramos la tabla/Close table}
Table1.Close;
{En Modo exclusivo/Exclusive mode}
Table1.Exclusive:=True;
{Abrimos tabla/Open table}
Table1.Open;
{Compactar/pack}
PackDBF(Table1);

{Reabrir tabla/reopen table}
Table1.Close;
Table1.Exclusive:=False;
Table1.Open;





Compactar tablas DBF con una función:



procedure PackDBF(Const ADatabase, ATable : String);
begin
with TTable.Create(nil) do
try
DatabaseName := ADataBase;
TableName := ATable;
Exclusive := True;
Open;
Check(DbiPackTable(Database.Handle,Handle,'','',True));
finally
Free;
end;
end;



Ejemplo de llamada:



PackDBF('Alias','Table1');



Para tablas Paradox:



procedure PackParadox(Const ADatabase, ATable : String);
var
ADB :TDataBase;
SaveKC : Boolean;
PdxStruct : CRTblDesc;
begin
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar