Jump to content


Photo

Delphi XE5 y DBase


  • Please log in to reply
10 replies to this topic

#1 DjDaVe

DjDaVe

    Newbie

  • Miembros
  • Pip
  • 3 posts

Posted 20 March 2014 - 05:53 AM

Hola a todos!

He descargado la versión de evaluaicón Delphi XE5 para realizar pruebas de desarrollo para android.

Estoy realizando prubas de conexión a bases de datos antiguas, como DBF.

Que driver devo utilizar para este tipo de bases de datos y que componentes?

He probado varios pero me da errores, no se si tengo que instalar algo más. He instalado BDE, pero no se si necesito poner drivers en algún directorio.

Alguna idea?

Saludos y gracias de antemano!
  • 0

#2 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4945 posts
  • LocationMéxico

Posted 20 March 2014 - 09:10 AM

Las tablas son de FoxPro o de Dbase?

La pregunta es por que yo uso ADO y existen drivers para ambos manejadores que puedes usar para conectarte.
  • 0

#3 FerCastro

FerCastro

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 636 posts
  • LocationCiudad de México

Posted 20 March 2014 - 09:31 AM

No se si estén disponibles aun, supongo que si, pero puedes usar los componentes de Advantage, te dan todo lo que necesitas:


http://devzone.advan...=10&Platform=11


Y un pequeño manual de como usarlas:

http://gfernando.blo...mpirulando.html


Saludos!!


  • 0

#4 genriquez

genriquez

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 539 posts
  • LocationCali, Colombia

Posted 20 March 2014 - 07:05 PM

Hola

Si vas a trabajar en Delphi XE5 y más aún en dispositivos móviles, primero debes olvidarte de la VCL y del BDE.

El XE5 viene con los componentes FireDac, son excelentes y funcionan perfectamente en todas las plataformas y a todas las bases de datos comerciales diponibles.

Los componentes DbExpress también son muy buenos, son los que uso actualmente y funcionan en todas las plataformas y a todas las bases de datos disponibles.

Ahora si lo que quieres es conectarte en dispositivos móviles, debes pensar en hacerlo con servicios REST, WebServices o recomendación DataSnap.

Ahora las aplicaciones en móviles con servidores de bases de datos, deben ser en 3-capas N-tieres, y cualquiera de las tecnologías que te mencioné anteriormente son muy buenas.

Si lo que quieres es conectarte a una base de datos local en el dispositivo móvile, tiene Interbase ToGo, Interbase Lite, o SQL Lite, que según he visto son las mejores opciones.

Corren perfectamente tanto en Android como en IOS.

Sé que cambiar de BDE con DBase a 3 Capas con otras bases de datos es complejo, pero para que valga el cambio hay que hacerlo.

otro cambio importante que tiene XE5 para móviles además de FireMonkey es el uso de los LiveBindings,  ya desaparece el TDataSource y los componentes DbAware,  ahora todos los componentes de FireMonkey se pueden conectar a la base de datos y todas las propiedades son suceptibles de conectarse a un campo o entre diferentes componentes.

Es un cambio GRANDE, pero vale la pena.

Saludos.
  • 0

#5 FerCastro

FerCastro

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 636 posts
  • LocationCiudad de México

Posted 21 March 2014 - 09:10 AM

Hola

Si vas a trabajar en Delphi XE5 y más aún en dispositivos móviles, primero debes olvidarte de la VCL y del BDE.

El XE5 viene con los componentes FireDac, son excelentes y funcionan perfectamente en todas las plataformas y a todas las bases de datos comerciales diponibles.

Los componentes DbExpress también son muy buenos, son los que uso actualmente y funcionan en todas las plataformas y a todas las bases de datos disponibles.

Ahora si lo que quieres es conectarte en dispositivos móviles, debes pensar en hacerlo con servicios REST, WebServices o recomendación DataSnap.

Ahora las aplicaciones en móviles con servidores de bases de datos, deben ser en 3-capas N-tieres, y cualquiera de las tecnologías que te mencioné anteriormente son muy buenas.

Si lo que quieres es conectarte a una base de datos local en el dispositivo móvile, tiene Interbase ToGo, Interbase Lite, o SQL Lite, que según he visto son las mejores opciones.

Corren perfectamente tanto en Android como en IOS.

Sé que cambiar de BDE con DBase a 3 Capas con otras bases de datos es complejo, pero para que valga el cambio hay que hacerlo.

otro cambio importante que tiene XE5 para móviles además de FireMonkey es el uso de los LiveBindings,  ya desaparece el TDataSource y los componentes DbAware,  ahora todos los componentes de FireMonkey se pueden conectar a la base de datos y todas las propiedades son suceptibles de conectarse a un campo o entre diferentes componentes.

Es un cambio GRANDE, pero vale la pena.

Saludos.


Esto es cien por ciento cierto


  • 0

#6 DjDaVe

DjDaVe

    Newbie

  • Miembros
  • Pip
  • 3 posts

Posted 25 March 2014 - 09:46 AM

Gracias a todos por la información, pero la verdad que ando un poco perdidillo.

Utilizo tablas DBF (dbase).

Entonces puedo conectarme con Firedac o DBExpress a mis tablas DBF? Hay algun manual que me indique como hacerlo?

Un saludo!
  • 0

#7 genriquez

genriquez

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 539 posts
  • LocationCali, Colombia

Posted 26 March 2014 - 01:33 PM

Nop, ya no hay ningun controlador que venga con  Delphi o radstudio a excepción del BDE que te permita conectarte,  y no hay ninguna razón para tener una aplicación moderna con tablas de DBASE.  existen mejores tecnologías para hacer las mismas cosas, mas eficientes y sobre todo más seguras.  DBase se daña con mucha facilidad y no tiene arquitectura de servidor.

Si aún persisten en usar DBase, te tocaría buscar componentes que te permitan hacer esto y que además sean compatibles con esto.  estoy seguro que no existen ninguno que te soporte dispositivos móviles. (Espero que si alguien sabe me cuente).

Mi mejor consejo:  No te aferres a tecnologías que ya no valen la pena, te complicas la vida y no te aportan nada bueno, solo arrastrar problemas que ya se han solucionado y están más que probados. 

Utiliza una base de datos libre,  FireBird,  ISQL, MySQL, Postgres, etc.  son muchas las opciones.

Saludos.
  • 0

#8 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1484 posts
  • LocationMallorca

Posted 03 April 2014 - 01:25 PM

Hola.

Yo utilizo ADO cuando aún tengo que exportar a dBase. No necesitas instalar nada especial, el mismo driver Jet Engine de Microsoft (destinado para Access) soporta archivos dBase.

Imagina que quieres abrir las bases de datos CLIENTES.DBF y FACTURAS.DBF de la carpeta C:\DATOS. Entonces necesitas soltar en tu formulario un componente ADOConnection (llámale Cn), y dos objetos ADOTable (llámales tbClientes y tbFacturas). Para conectarlos a tus datos puedes usar este código :



delphi
  1. var Ruta: string;
  2. ...
  3. ...
  4.     Ruta := 'C:\DATOS';
  5.     Cn.Close;                // Nos aseguramos que la conexión esté cerrada antes de configurarla
  6.     Cn.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;' +
  7.                 'Data Source=' + Ruta + '; ' +
  8.                 'Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";' +
  9.                 'Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=16;' +
  10.                 'Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;' +
  11.                 'Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";' +
  12.                 'Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;' +
  13.                 'Jet OLEDB:Don''t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;' +
  14.                 'Jet OLEDB:SFP=False';
  15.     Cn.Open;
  16.     tbClientes.Connection := Cn;
  17.     tbClientes.TableName := 'CLIENTES';
  18.     tbFacturas.Open;
  19.     tbFacturas.Connection := Cn;
  20.     tbFacturas.TableName := 'FACTURAS';
  21.     tbFacturas.Open;
  22.     ... 


  • 0

#9 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4945 posts
  • LocationMéxico

Posted 03 April 2014 - 01:59 PM

Por esa entre muchas razones me gusta tanto ADO
  • 0

#10 DjDaVe

DjDaVe

    Newbie

  • Miembros
  • Pip
  • 3 posts

Posted 04 April 2014 - 01:14 AM

Hola.

Yo utilizo ADO cuando aún tengo que exportar a dBase. No necesitas instalar nada especial, el mismo driver Jet Engine de Microsoft (destinado para Access) soporta archivos dBase.

Imagina que quieres abrir las bases de datos CLIENTES.DBF y FACTURAS.DBF de la carpeta C:\DATOS. Entonces necesitas soltar en tu formulario un componente ADOConnection (llámale Cn), y dos objetos ADOTable (llámales tbClientes y tbFacturas). Para conectarlos a tus datos puedes usar este código :



delphi
  1. var Ruta: string;
  2. ...
  3. ...
  4.     Ruta := 'C:\DATOS';
  5.     Cn.Close;                // Nos aseguramos que la conexión esté cerrada antes de configurarla
  6.     Cn.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;' +
  7.                 'Data Source=' + Ruta + '; ' +
  8.                 'Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";' +
  9.                 'Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=16;' +
  10.                 'Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;' +
  11.                 'Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";' +
  12.                 'Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;' +
  13.                 'Jet OLEDB:Don''t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;' +
  14.                 'Jet OLEDB:SFP=False';
  15.     Cn.Open;
  16.     tbClientes.Connection := Cn;
  17.     tbClientes.TableName := 'CLIENTES';
  18.     tbFacturas.Open;
  19.     tbFacturas.Connection := Cn;
  20.     tbFacturas.TableName := 'FACTURAS';
  21.     tbFacturas.Open;
  22.     ... 



Muchísimas gracias por tu información de verdad.
En cuanto tenga un rato lo probaré.

Lo que quiero conseguir es terminar el ejemplo de conexión de una aplicación móvil a una tabla dbf que tengo, como se explica en este ejemplo "http://www.r2datatec... XE5-Tut20.pdf"

A ver si consigo avanzar.

Un saludo y gracias de nuevo. Seguiré informando! :ap:
  • 0

#11 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1484 posts
  • LocationMallorca

Posted 04 April 2014 - 03:18 AM

Magnífico tutorial, felicidades.

No deberías tener problemas para acceder a la tabla DBF en la capa intermedia (solo en el cliente móbil no podrías hacerlo porqué en iOS no tendrás disponible ADO).

Por cierto, el último paso lo puedes evitar. Si en tu aplicación añades un "Uses MidasLib" entonces la librería Midas.dll se enlaza estáticamente en el propio ejecutable, y ya no tienes que distribuirla con tu aplicación.

Saludos.

  • 0




IP.Board spam blocked by CleanTalk.