>En dicha clase he notado que si el campo clave no es autoincremental y yo permito el ingreso de una clave que ya existe (aunque el registro este borrado) me da el error 1884.Por lo que lei en la documentación esto se produce en las claves primarias (ya que toma en cuenta el registro borrado) hasta que se haga un pack del archivo.No conozca la clase, pero la idea es usar numeros aleatorios o de un contador pero que estos numeros (clave primaria) no tenga sentido para el usuario. Eso es el concepto de "Surrogate Keys".
Cuando borras registros, no reusas esas llaves sino que creas nuevas. El usuario piensa que el numero de cliente - por ejemplo - es la llave primaria. Internamente - y realmente - no lo es sino que usas un contador. Si algun dia el cliente ABC compra a la compañía XYZ y te pide que juntes los dos registros o renombres uino de ellos, no pierdes la integridad y las reclaciones de tablas ya que lo que cambias el la clave que ellos ven pero mantienes la llave primaria real.
Ver:
http://fox.wikis.com/wc.dll?Wiki~SurrogateKey~SoftwareEng