Ver Mensaje Individual
  #6  
Antiguo 11-07-2019
Jose_Pérez Jose_Pérez is offline
Miembro
 
Registrado: may 2003
Posts: 156
Reputación: 21
Jose_Pérez Va por buen camino
Ya sé que ha llovido mucho desde que hiciste tu consulta. Pero he tenido tu mismo problemas y navegando había llegado hasta aquí. Y como posteriormente he dado con una solución, aquí la dejo. Más vale tarde que nunca.

Pues resulta que, al menos en el formato dBase III+, utilizando AddFieldDef no deja crear un campo binario, es decir, num(1,0). ¿Solución? Lo creamos, como num(2,0) y, una vez creada la tabla, abrimos el archivo y reescribimos la longitud deseada.

Código Delphi [-]

With AddFieldDef Do
     begin
     Name:= 'Campo';
     DataType:= ftBCD;
     Size:= 0;
     Precision:=2;
     end;

Tabla.CreateTable;

// Posición es la que ocupa el campo en la descripción de la estructura de la tabla.
SetLengthBinary('c:\NombreTabla.dbf',Posicion);

Código Delphi [-]
procedure TfrmEstructura.SetLengthBinary(dbFile: String; PosicionCampo: Integer);
const
  Value: Byte=1;
var
  F: File of byte;
begin

  AssignFile(F,dbFile);
  Reset(F);
  Seek(F,(PosicionCampo*32)+16);
  Write(F,Value);
  CloseFile(F);

end;
Responder Con Cita