Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-02-2005
VRO VRO is offline
Miembro
 
Registrado: abr 2004
Posts: 230
Poder: 21
VRO Va por buen camino
Crear tabla .BDF desde delphi

Hola, la verdad es que no se si se puede hacer lo que os comento,

Lo que he hecho es crear desde access unas tablas y despues la he exportado a .BDF con sus indices .NDX, digamos que son tablas externas que las utilizo para guardar momentaneamente unos datos y luego mostrarlos en mi aplicación, pero como no son muy relevantes no quiero crear tablas en la base de datos para guardar esos datos.

Pues bien mi pregunta es si se puede crear tablas .BDF con sus indices .NDX desde mi aplicación y como se haría, ya que las tablas con el uso, bueno mejor dicho el indice a veces se corrompe y da errores ó muestra datos que no se corresponden con los guardados, or esto, lo que pretendo es crear la tabla en tiempo de ejecución así tendre una tabla nueva cada vez.

No se si lo que pregunto es una tontería, porque es muy facil de hacer ó porque no se puede hacer.

Si alguien puede resolver mi duda....

Muchísimas gracias a todos por todo.
Responder Con Cita
  #2  
Antiguo 02-02-2005
lgarcia lgarcia is offline
Miembro
 
Registrado: jul 2004
Posts: 479
Poder: 20
lgarcia Va por buen camino
Crear tabla .dbf desde Delphi

No se muy bien lo de los indices a que te refieres pero te voy a mostrar un codigo donde se puede realizar eso que quieres:

procedure TFormFicheroCadeca.ButtonCrearClick(Sender: TObject);
var
Ok: Boolean;
begin
with DataModule1 do
begin
if FileExists('Cadeca.dbf') then DeleteFile('Cadeca.dbf');
Cadeca.Active:= FALSE;
Cadeca.DatabaseName:= 'dBase Files';
Cadeca.TableType:= ttDBase;
Cadeca.TableName:= 'Cadeca';
with Cadeca.FieldDefs do
begin
Clear;
Add('COD_UNIDAD', ftString, 4, FALSE);
Add('CAJA', ftString, 2, FALSE);
Add('NBOLSA', ftString, 8, FALSE);
Add('IMPORTE', ftFloat, 0, FALSE);
Add('DIFERENCIA', ftFloat, 0, FALSE);
Add('MONEDA', ftString, 3, FALSE);
Add('FECHA_DEP', ftTime, 0, FALSE);
Add('FECHA_CON', ftTime, 0, FALSE);
Add('OBS', ftString, 200, FALSE);
end;
Cadeca.CreateTable;
Cadeca.Open;
FicheroCadeca1.First;
while not FicheroCadeca1.Eof do
begin
Cadeca.Insert;
CadecaCOD_UNIDAD.Value:= FicheroCadeca1cadeca.Value;
if FicheroCadeca1caja.Value < 10 then CadecaCAJA.Value:= '0' + IntToStr(FicheroCadeca1caja.Value)
else CadecaCAJA.Value:= IntToStr(FicheroCadeca1caja.Value);
CadecaNBOLSA.Value:= FicheroCadeca1numero.Value;
CadecaIMPORTE.Value:= FicheroCadeca1Importe.Value;
CadecaDIFERENCIA.Value:= FicheroCadeca1Diferencia.Value;
CadecaMONEDA.Value:= FicheroCadeca1moneda.Value;
ConvertirFecha(DateToStr(FicheroCadeca1Fecha1.Value), fecha1);
ConvertirFecha(DateToStr(FicheroCadeca1fecha2.Value), fecha2);
CadecaFECHA_DEP.Value:= FicheroCadeca1Fecha1.Value - 1;
if IArea = 2 then CadecaFECHA_CON.Value:= Date + 1
else CadecaFECHA_CON.Value:= Date + 1;
Cadeca.Post;
FicheroCadeca1.Next;
end;
Cadeca.Close;
end;
NombreFichero;
if IArea = 2 then fichero:= DataModule1.ConfiguracionCodigo.Value + 'cd' + dia + mes + '.dbf'
else fichero:= DataModule1.ConfiguracionCodigo.Value + 'sd' + dia + mes + '.dbf';
Ok2:= True;
if FileExists(fichero) then DeleteFile(fichero);
Ok:= CopyFileTo('Cadeca.dbf', Fichero);
DataModule1.LogSystem(IdPersonal, 15);
ShowMessage(' El fichero de Cadeca: ' + fichero + ' fue creado satisfactoriamente');
end;

En este procedimiento se crea desde cero la Tabla dbf y posteriormente se actualiza con los datos que estan en el procedimiento almacenado FicheroCadeca1. Debes en el uses añadir las Unit bde, DBTables.

Esperando que te sirva.

Saludos
Luis Garcia
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


La franja horaria es GMT +2. Ahora son las 23:06:58.


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