Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-04-2007
DavidLM2007 DavidLM2007 is offline
Registrado
 
Registrado: abr 2007
Posts: 6
Poder: 0
DavidLM2007 Va por buen camino
Os cuento mas pruebas

Si pongo:

with AddFieldDef do begin
Name := 'TCasado';
DataType := ftBCD;
Size := 0;
Precision := 2;
end;

Lo genera prefectamente.

Si pongo:

with AddFieldDef do begin
Name := 'TCasado';
DataType := ftBCD;
Size := 2;
Precision := 5;
end;

y luego en el campo (directamente en el DB Desktop) introduzco el valor

236,23 -> se convierte en 236,20
16,24 -> se convierte en 16,24
12345,62 -> se convierte en 12346,00
Responder Con Cita
  #2  
Antiguo 27-04-2007
DavidLM2007 DavidLM2007 is offline
Registrado
 
Registrado: abr 2007
Posts: 6
Poder: 0
DavidLM2007 Va por buen camino
Sigo haciendo pruebas..

Si pongo
Precision: 1, size: 0 --> 20, 4 ,
Precision: 1, size: 1 --> 20,4 ,
Precision: 2, size: 1 --> Error Invalid field descriptor

Creo que lo que pasa es que por lo menos tenemos que definir dos de precsion porque la coma cuenta tambien.

Cualquier pista, ayuda sera bienvenidad

necesito crear el campo numeric 1,0 !!!!


GRacias.
Responder Con Cita
  #3  
Antiguo 11-07-2019
Jose_Pérez Jose_Pérez is offline
Miembro
 
Registrado: may 2003
Posts: 156
Poder: 22
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
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Definir impresora Carliviris Varios 6 11-01-2008 03:12:17
Campo clave en DBase!!!!! EfrainSanmiguel Conexión con bases de datos 7 14-12-2005 17:27:31
Definir formula en campo oncalculated ANXO Conexión con bases de datos 4 13-10-2005 20:39:34
Como definir un campo Memo manuelpr Conexión con bases de datos 4 12-04-2005 20:01:45
Definir columnas dbgrid Letty Conexión con bases de datos 3 15-12-2003 20:04:57


La franja horaria es GMT +2. Ahora son las 17:43:39.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi