Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Crear tabla DB (https://www.clubdelphi.com/foros/showthread.php?t=32989)

userlazarus 22-06-2006 23:41:55

Crear tabla DB
 
Hola,

Intento crear una tabla Dbf y me da error en el tipo de campo (este lo recojo de un TEdit. El código que empleo es el siguiente:

Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
begin
     basedatos := TDbf.Create(nil);
     try
     basedatos.TableLevel := 4
     basedatos.Exclusive := True;
     basedatos.TableName := Edit1.Text+'.dbf';
     With basedatos.FieldDefs do begin
      Add('nombre',Edit1.Text,80,True);
      Add('Apellidos',Edit2.Text,80,True);
      End;
     basedatos.CreateTable;
     basedatos.Open;
     basedatos.Close;
  finally
    basedatos.Free;
  end;
end;

Gracias

nemesio 23-06-2006 00:06:44

¿Qué colocas en el Edit que recoge el Tipo de Campo?

ContraVeneno 23-06-2006 00:41:49

Pues el detalle esta en que utlilizas el mismo edit1 para el nombre de la base de datos y para definir el tipo de dato del primer campo.

como ya dijo nemesio, habría que ver que pones en el edit1 y en el edit2, que se supone debería ser un tipo de datos válido.

userlazarus 23-06-2006 08:26:02

En el TEdit pongo por ejemplo ftString y me sigue dando tipo de datos
erroneo.
Utilizo lo siguiente:

Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
begin
     basedatos := TDbf.Create(nil);
     try
     basedatos.TableLevel := 4
     basedatos.Exclusive := True;
     basedatos.TableName := Edit1.Text+'.dbf';
     With basedatos.FieldDefs do begin
      Add('nombre',Edit2.Text,80,True);
      Add('Apellidos',Edit3.Text,80,True);
      End;
     basedatos.CreateTable;
     basedatos.Open;
     basedatos.Close;
  finally
    basedatos.Free;
  end;
end;

userlazarus 23-06-2006 12:38:29

:confused:
Upps..., alguien sabe lo que me falla..?
Gracias

nemesio 23-06-2006 16:48:13

Ok, ya veo cual es tu error. Cuando recibes por teclado el tipo de Datos, estás recibiendo un Texto, el ftString es una variable de tipo TFieldType que se encuentra en el Unit "DB". Tienes que saber diferenciar que es un texto y que es una Variable. Te recomiendo lo siguiente: usa en vez de un Edit un ComboBox en el cual tendrás los tipos de campos que quieras usar. Cuando escojas uno entonces harás lo siguiente:
if combobox1.ItemIndex=0 then
Add('nombre',ftString,80,True);
claro que es solo una idea ya que ese codigo lo puedes optimizar. Prueba y verás que tu problema estará resuelto.

userlazarus 23-06-2006 17:59:56

Gracias
 
Ok.
Solucionado. Muchas gracias


La franja horaria es GMT +2. Ahora son las 21:04:49.

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