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 08-03-2017
nemesio nemesio is offline
Miembro
 
Registrado: nov 2005
Ubicación: Isla de Margarita, Venezuela
Posts: 377
Poder: 19
nemesio Va por buen camino
Database desktop si permite pasar de Paradox a Dbase

Aunque este es un hilo viejo, difiero de Roman en su afirmación de que ni el Database Desktop permite pasar una tabla Paradox a Dbase. Tienes que abrir un Query, seleccionas la tabla, luego seleccionas todos los campos, una vez seleccionados los campos presionas el ícono "Query Properties", y ahi te aparece una ventana donde escoges en el "Table Type" si quieres guardar el query como paradox o como Dbase, escribes el nombre que le vas a colocar a la tabla , presionas "Aceptar" y listo.
Responder Con Cita
  #2  
Antiguo 08-03-2017
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Mmm. Hace diez años podría haber abierto el Database Desktop y averiguar de qué estás hablando. Lamentablemente hace muchos, muchos años que ese software ha desaparecido de mi entorno. No obstante, me parece que en ese mensaje me refería a que al importar la estructura de una tabla de paradox a dbase (con la función Borrow), un campo de tipo Numeric se pierde, no que no se pudiera importar .

LineComment Saludos
Responder Con Cita
  #3  
Antiguo 08-03-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.055
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por roman Ver Mensaje
...No obstante, me parece que en ese mensaje me refería a que al importar la estructura de una tabla de paradox a dbase (con la función Borrow), un campo de tipo Numeric se pierde, no que no se pudiera importar .

LineComment Saludos
Pues sí, como dijiste hace 13 años:
Cita:
Los únicos tipos de datos en DBase son

CHARACTER
NUMBER
DATE
LOGICAL
MEMO
Responder Con Cita
  #4  
Antiguo 09-03-2017
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.473
Poder: 21
newtron Va camino a la fama
Hola.

Yo ahora estoy en la tarea de pasar mis aplicaciones a la versión Berlin de delphi y uno de los problemas que me he encontrado es la creación y manipulación de tablas .DBF. al final he optado por usar ADO y creo que va bastante bien y no tienes que instalar componentes externos. Te paso la función con la que creo la tabla por si te sirve de ayuda.

Código Delphi [-]
  procedure CreaTablaDBF(Panel: Smallint; CamposTabla: TStringList; CampoTabla: String; Creada: Boolean);
  var
    Path,NombreTabla,Parametros: String;
    i: Smallint;
    ConnStringDBF: String;
  begin
  //
    if not Creada then begin
    //
      if CampoTabla = 'VACIO' then begin
        //Cadena de conexión
        ConnStringDBF := 'Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=%s;';

        //Nombre de la Tabla
        NombreTabla := ExtractFileName(EditFichero.Text);
        Path:=ExtractFilePath(EditFichero.Text);
        Path:=Copy(Path,1,Length(Path)-1);

        if Trim(NombreTabla) = '' then NombreTabla := 'Salida.dbf';

        if UpperCase(Trim(ExtractFileExt(NombreTabla))) = '' then begin
          NombreTabla := NombreTabla + '.DBF';

        end else if UpperCase(Trim(ExtractFileExt(NombreTabla))) <> '.DBF' then begin
          ShowMessage('Si se especifica extension DEBE ser DBF.');
          Exit;

        end;

        if Length(ExtractFileName(NombreTabla)) > 12 then begin
          ShowMessage('Se debe especificar un nombre de fichero de longitud inferior a 8 caracteres.');
          Exit;

        end;

        if not FileExists(ExtractFilePath(EditFichero.Text)+NombreTabla) then begin
          ADOConnDBF := TADOConnection.Create(nil);
          ADOConnDBF.LoginPrompt := False;
          ADOConnDBF.ConnectionString := Format(ConnStringDBF, [Path]);

          ADOCommand := TADOCommand.Create(nil);
          ADOCommand.Connection := ADOConnDBF;
          //Creamos la Tabla de salida
          Parametros:= 'Create Table ' + NombreTabla + ' (';
          for i:=Low(ImpresoAnverso.SeccionPaneles.Panel[Panel].Elemento) to High(ImpresoAnverso.SeccionPaneles.Panel[Panel].Elemento) do begin
            case ImpresoAnverso.SeccionPaneles.Panel[Panel].Elemento[i].TipoCampo of
            //
              teCadena:  Parametros:=Parametros+'CAMPO_'+IntToStr(i)+' CHAR('+IntToSTr(ImpresoAnverso.SeccionPaneles.Panel[Panel].Elemento[i].Longitud)+'),';
              teEntero:  Parametros:=Parametros+'CAMPO_'+IntToStr(i)+' INTEGER,';
              teReal:    Parametros:=Parametros+'CAMPO_'+IntToStr(i)+' CURRENCY,';
              teHora:    Parametros:=Parametros+'CAMPO_'+IntToStr(i)+' CHAR(5),';
              teFecha:   Parametros:=Parametros+'CAMPO_'+IntToStr(i)+' DATE,';
              teMoneda:  Parametros:=Parametros+'CAMPO_'+IntToStr(i)+' CURRENCY,';
              teLogico:  Parametros:=Parametros+'CAMPO_'+IntToStr(i)+' CHAR(1),';
              else       Parametros:=Parametros+'CAMPO_'+IntToStr(i)+' CHAR(255),';
            end;
          end; // with TablaDbf do begin
          Parametros:= Copy(Parametros,1,Length(Parametros)-1)+')';
          ADOCommand.CommandText := Parametros;
          ADOCommand.Execute;
          if ExtractFileName(EditFichero.Text) = '' then begin
          //
            NombreTabla := 'Salida.dbf';
          end else begin
          //
            if UpperCase(Trim(ExtractFileExt(EditFichero.Text))) = '' then begin
              NombreTabla := ExtractFileName(EditFichero.Text) + '.DBF';
            end else begin
              NombreTabla := ExtractFileName(EditFichero.Text);
            end;
          //
          end;
          NombreTabla := ExtractFilePath(EditFichero.Text) + NombreTabla;
          ADOTable:=TADOTable.Create(nil);
          ADOTable.Connection := ADOConnDBF;
          ADOTable.TableName := ExtractFileName(EditFichero.Text);
          ADOTable.Open;
          //
        end; //if FileExist
      //
      end; //if CampoTabla = 'VACIO'
    //
    end else begin
    //
      Try
      //
        ADOTable.append;
        try
          for i:=Low(ImpresoAnverso.SeccionPaneles.Panel[Panel].Elemento) to High(ImpresoAnverso.SeccionPaneles.Panel[Panel].Elemento) do begin
//          TablaSalida.FieldByName(ImpresoAnverso.SeccionPaneles.Panel[Panel].Elemento[i].Campo).AsString := CamposTabla[i];
            ADOTable.FieldByName('CAMPO_' + IntToStr(i)).AsString := CamposTabla[i];
          end; //for
//        TablaSalida.Post;
        finally
          ADOTable.Post;
        end;
      finally
      //
        CamposTabla.Clear;
      end;

    end; //if not Creada

  end;

Saludos
__________________
Be water my friend.
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 03:05: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