biks9
Messages postés3Date d'inscriptionmercredi 3 janvier 2007StatutMembreDernière intervention29 janvier 2007
-
29 janv. 2007 à 12:59
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 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.
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 novembre 20134 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.