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)
-   -   Base de Datos Access (https://www.clubdelphi.com/foros/showthread.php?t=71023)

calcena 25-11-2010 13:55:40

Base de Datos Access
 
Buenos dias, soy nuevo, hace mucho que trabajé con Delphi y quiero volver a entrar en el tema (supongo que Delphi tendrá futuro) lo que si tengo claro es que es mas portable que muchos otros lenguajes.
A lo que vamos, tengo un proyecto de unos 200.000 registros en Access y me gustaria migrarlo a lenguaje Delphi. Alguien me podria dar una pequeña guia de como utlizar una grid como visual para ver los datos y poder insertar, modificar datos ...etc....se puede utilizar sentencias SQL?

Gracias por vuestras orientaciones

Neftali [Germán.Estévez] 25-11-2010 16:23:34

Hola Calcena y bienvenido a los foros.

Supongo que cuando dices que lo tienes en Access, te refieres a que los formularios, listados y demás están hechos en Access.
Para pasar eso a Delphi, lo priemro que debes pensar es si quieres mantener como Base de Datos Access y cambiar sólo formulario y listados o deseas cambiar también de Base de datos.

Access lo bueno que tiene es que es portable. Para monopuesto y si no tienes mucha exigencia te puede ir bien. Además puedes aprovechar las consultas creadas en el propio Access.

Si tienes dudas de la capacidad, puedes obtar por un SGBD más serio. SQL Server Express, FireBird (si necesitas que sea portable), MySQL,...

Para acceder a una Base de Datos MDB (de Access) desde Delphi debes utilizar los componentes de la paleta ADO.
TADOConnection, para la conexión y TADOTable y TADOQuery para acceder a las tablas o para lanzar consultas.

Puedes consultar ejemplos del uso de ADO que puedes encontrar en el FTP de clubDelphi y también en el directorio de Demos que viene con Delphi.

Puedes mantener las consultas que tienes en Access (si es que tienes muchas) y para acceder a ellas puedes usar el componente TADOStoredProc.

También puedes revisar esta página; Ahí puedes ver paso a paso cómo crear un formulario con un Grid que accede a Datos utilizando ADO. Lo unico diferente es que ahí se accede a SQL Server y en tu ADO Conection debes configurar Access, pero lo demás es exactamente como está ahí.

calcena 25-11-2010 17:45:17

guauuuuu
 
Impresionante Neftali, muchas gracias tanto por tu pronta respuesta, así como por lo completo de tu respuesta que abarca tanto lo que he preguntado como cosas que estaban ahi en el aire sin escribir ...el tema Firebird me comentas que es portable que tal firebird? nunca lo he usado, dificl, facil, opinion que te merece?
El tema de access lo tengo todo programado desde access mediante codigo VBAcess (que viene siendo Visual Basic)
Pero lo unico que queria aprovechar para hacer portable son las tablas, nada mas, Ves oportuno que migre a firebird?. La idea es el programa en un pen y poder consultarlo en cualquier pc, dentro de una carpeta estaria la BD.

Gracias compañero

Neftali [Germán.Estévez] 25-11-2010 18:09:21

Hola Calcena.
Es una decisión difícil sin saber exactamente cómo es tu programa y qué necesidades tiene.

Access es una Base de Datos de escritorio, FireBird es un SGBD (Sistema Gestor de Bases de Datos). La potencia de ambos no es comparable.
* Si tu programa necesita mucha potencia o maneja gran cantidad de datos, opta por FB.
* Si tienes diudas opta por FB.
* Si tu sistema es sencillo y no tiene grandes requerimientos en cuanto a los datos puedes probar con Access.

Puedes hacer unas pequeñas pruebas con Access, más que nada para adaptarte al entorno y a realizar las conexiones.
Posteriormente puedes cambiar a FB, aunque los componentes son diferentes, la forma de conectarlos en visual y de utilizarlos es similar.

Con FB tendrás a priori más complicaciones, hasta que te acostumbres. Al ser un SGBD necesitas instalarte un Servidor. Trabajaras con él para crear la Base de Datos, las tablas (IBExpert versión Free es una buena opción para estas tareas -puedes descargarlo de la página o del FTP del Club-).

En la versión final, puedes usar esa Base de Datos con la versión Embebded de FireBird. Que no es más que, en lugar de instalar el servidor, copiar unas DLL's en el directorio de programa.

Delfino 25-11-2010 22:58:20

Cita:

Empezado por Neftali (Mensaje 383265)
* Si tu sistema es sencillo y no tiene grandes requerimientos en cuanto a los datos puedes probar con Access.

Incluso en este caso mejor optar por Firebird es su version Embedded. Con Access se ata uno a Windows y el M$ jet tan bugueado.

Neftali [Germán.Estévez] 26-11-2010 11:17:31

Cita:

Empezado por Delfino (Mensaje 383312)
Con Access se ata uno a Windows y el M$ jet tan bugueado.

Con Delphi se ata uno a Windows, así que el tema de Access tal vez sea lo de menos en este caso.

Cita:

Empezado por Delfino (Mensaje 383312)
el M$ jet tan bugueado.

No se a qué bugs te refieres; ¿Puedes explicarte? Llevo utilizando Jet4 muchos años y siempre me ha funcionado perfectamente o no me he enterado.
¿Tiene muchos bugs?
¿Cuales?

Estifmauin 26-11-2010 12:31:35

Estoy con Delfino.
Firebird Embedded es lo que buscas. Tan sólo debes copiar unas pocas dlls en la carpeta del exe y a correr. Y si luego necesitas acceso multiusuario, el mismo fichero te vale (sin cambiar nada).
Para migrar los datos de una a otra, existen herramientas, aunque puedes hacer un programita que lo haga con 2 conexiones ADO.

calcena 26-11-2010 20:08:43

Y DbISAM??
 
Buenas de nuevo, tengo un compañero que programa bastante con delphi y me ha recomendado DBISAM yo como no tengo ni idea con este sistema me gustaria que me comentarais que opinais.
Despues otro tema, mi proyecto es una filmoteca para archivar mis peliculas, juegos etc, la cuestión es que éste compañero ha realizado un proyecto, y tiene un componente que según él, descarga el codigo de una pagina web para por ejemplo en mi caso, descargar para una pelicula, el argumento, caratula, director .etc...Sabeis como se llama este componente y como podria hacer esto?
Gracias.

Delfino 27-11-2010 18:19:04

Cita:

Empezado por Neftali (Mensaje 383349)
Con Delphi se ata uno a Windows, así que el tema de Access tal vez sea lo de menos en este caso.

Si pero, en caso de cliente/servidor puedes poner la BD en un servidor Linux..
Cita:

Empezado por Neftali (Mensaje 383349)
No se a qué bugs te refieres; ¿Puedes explicarte?

Una busqueda en google y te sale de todo.

Despues de 8 service packs ahora esta mas estable. Pero a los inicios si q tenia muchos y a mi era lo q me hizo tener alergia a los producots M$, en este caso era Access..

Neftali [Germán.Estévez] 29-11-2010 13:19:41

Cita:

Empezado por Delfino (Mensaje 383477)
Si pero, en caso de cliente/servidor puedes poner la BD en un servidor Linux...

Correcto, pero creo que en ningun caso se ha mencionado esa premisa, o yo no la he leído.

Cita:

Empezado por Delfino (Mensaje 383477)
Una busqueda en google y te sale de todo.

Llevo muchos años trabajando con Jet4 y nunca he tenido ningun problema, siempre y cuando se use para lo que está diseñado.
Todos los proyectos tienen bugs (y no seré yo el que va a defender los proyectos de MS), pero Access y en general Office nunca se han destacado por ser proyectos con muchos bugs, a diferencia de otros de la misma casa.

Delfino 29-11-2010 15:42:00

Cita:

Empezado por Neftali (Mensaje 383549)
Llevo muchos años trabajando con Jet4 y nunca he tenido ningun problema, siempre y cuando se use para lo que está diseñado.

Y que son los argumentos que te han mantenido tanto tiempo con esa plataforma? :confused:

En otras palabras, que es lo que te hace no cambiar a Firebird? :confused:

Neftali [Germán.Estévez] 29-11-2010 16:46:05

Cita:

Empezado por Delfino (Mensaje 383560)
Y que son los argumentos que te han mantenido tanto tiempo con esa plataforma?

Como ya he dicho, creo que cada Base de Datos tienes sus propiedades y su "segmento"; Ni Access es lo mejor para todas las cosas, ni FB es lo mejor para todas, tampoco.

* Cuando yo empecé a programar con D5+ADO no se ni si existía la versión Embebded de FB.
* Access es una solución muy buena para programas locales sin grandes pretensiones.
* Muy fácil de desarrollar y de "portar", pues sólo hace falta 1 fichero MDB junto al EXE. En comparación con otras soluciones "locales" (como era en aquel tiempo el BDE) la sencillez y el rendimiento que ofrecía era mucho mayor, ya no digo otras soluciones que requerían un server.
* Hace tiempo que no trabajo seriamente con FB, pero te aseguro que cuando empecé con D5 no era precísamente estable. Recuerdo que 1 de cada 3 veces que se colgaba el servidor la BD quedaba irrecuperable (y cuando digo irrecuperable significa eso exactamente).
* Jet4 tiene una característica muy buena para determinados clientes; Aquellos que poseen Access y se desenvuelven mínimamente con él, pueden crear sus propias consultas y sus propios listados, pueden exportar sus datos, e incluso algunos (los más mañosos) llegaban a conectarlo con Excel y generaban sus estadísticas y gráficos. Todo ellos aprovechando los datos de tu aplicación. Esto es una característica que con otras Base de Datos era imposible (sin tener que utilizar módulos o programación extra).

Podrías seguir, pero creo que la idea ya la he comentado aquí otras veces, no estoy defendiendo Access como mejor que FB; Si es eso lo que piensas te equivocas.

Lo que pretendo decir es que creo que Access puede ser más adecuado que FB, SQL Server u Oracle para algunos proyectos. Al igual que para otros será más adecuado FB.

FB es un Sistema Gestor de Bases de Datos y Jet4+MDB simplemente es un motor de escritorio. En algunas ocasiones FB puede ser "demasiado" (complejo, costoso, potente,...) para una aplicación pequeña.

Un saludo.

Delfino 03-12-2010 22:00:50

Cita:

Empezado por Neftali (Mensaje 383574)
Jet4 tiene una característica muy buena para determinados clientes; Aquellos que poseen Access y se desenvuelven mínimamente con él, pueden crear sus propias consultas y sus propios listados, pueden exportar sus datos, e incluso algunos (los más mañosos) llegaban a conectarlo con Excel y generaban sus estadísticas y gráficos.

Efectivamente esa es la principal atracción de Access: poder usar sus datos en Excel, Word y otras herramientas del Office dnd M$ tiene un monopolio casi igual q el del Windows.
Cita:

En algunas ocasiones FB puede ser "demasiado" (complejo, costoso, potente,...) para una aplicación pequeña.
Si dices esto es q no conoces bien a Firebird. La dll de la versión Embedded ocupa 2 mb y pico y es todo lo q se necesita para hacer una aplicación de escritorio con miles de miles de datos..


La franja horaria es GMT +2. Ahora son las 08:02:17.

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