Suppression physique

biks9 Messages postés 3 Date d'inscription mercredi 3 janvier 2007 Statut Membre Dernière intervention 29 janvier 2007 - 29 janv. 2007 à 12:59
ThWilliam Messages postés 418 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 26 novembre 2013 - 30 janv. 2007 à 11:16
bonjour,

j'ai un problème. lorsque j'essaie de supprimer un enregistrement d'une table ecrite en DBF, cet enregistrement est supprimé logiquement mais pas physiquement. je connais une commande sous Clipper qui fait ça, c'est la commande PACK.

quelqu'un de vous peut me donner l'equivalent de la commande PACK en Delphi, aussi je veux bien l'équivalent de la Commande ZAP qui supprime toute la table physiquement.

bien cordialement.

1 réponse

ThWilliam Messages postés 418 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 26 novembre 2013 4
30 janv. 2007 à 11:16
Salut,

Ah quelqu'un qui utilisait Clipper ! Cela me rappelle plein de choses !
Il n'y a pas, à ma connaissance, de procedure Delphi pour le compactage d'une table dbf.
Regarde dans le langage SQL s'il n'existe pas une requête correspondante.

Sinon utilise la méthode que Clipper emploie en fait sans te le dire :
- copie des records dans une table temporaire ayant la même structure de champs(cfr aide Delphi : CreateTable ou BatchMove...).
- faire un "Zap" de la table originale : pour cela il y a la procedure "EmptyTable".
- recopier les enregistrements dans la table originale vide. Cela va aussi reconstruire les index.
- tu peux supprimer le fichier temporaire ou le garder comme backup des données.

A +
Thierry 
0
Rejoignez-nous