• Jueves 2 de Mayo de 2024, 07:26

Autor Tema:  Borrado De Registros  (Leído 1880 veces)

kekal

  • Nuevo Miembro
  • *
  • Mensajes: 22
    • Ver Perfil
Borrado De Registros
« en: Martes 18 de Enero de 2005, 17:00 »
0
hola, resulta que tengo una tabla
donde en determinado momento de la aplicación borra un/os registros de una tabla, la tabla en cuestion es de dbase (.dbf), y tiene un borrado lógico y otro físico
el lógico marca los registros como borrados, el físico los borra del archivo
resulta que a la hora de de borrar
ya sea con...
Código: Text
  1.  
  2. tabla->Delete();
  3.  
  4.  
o con un query...
Código: Text
  1.  
  2. qtabla->Active=false;
  3. qtabla->SQL->Clear();
  4. qtabla->SQL->ADD("delete * from tabla where valor=-1");
  5. qtabla->Active=false;
  6.  
  7.  

lo que hacen es un borrado lógico, lo que quiero es borrado físico dado que las tablas de trabajo crecen muchisimo por los registros borrados

si alguien tiene alguna idea
Gracias

Fermin

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Borrado De Registros
« Respuesta #1 en: Lunes 24 de Enero de 2005, 20:35 »
0
HOla Kekal:

Espero que este código te sirva. Realiza el borrado físico de una tabla dbase:

 :comp:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
   DBIResult        rslt;
   CURProps       CurProps;
   hDBIDb           hTmpDb;
   hDBICur hTmpCur;

   Table1->Active = true;
   Check(DbiGetCursorProps(Table1->Handle, CurProps));
   if (strcmp(CurProps.szTableType, szDBASE) == 0)
      {
        Check(DbiPackTable(Table1->DBHandle,Table1->Handle,NULL,szDBASE, TRUE));
      }
  Table1->Open();
}
//---------------------------------------------------------------------------