Ir al contenido


Foto

¿Que base de datos uso?


  • Por favor identifícate para responder
11 respuestas en este tema

#1 jc

jc

    Member

  • Miembros
  • PipPip
  • 40 mensajes
  • LocationMojácar, Almería, España

Escrito 26 enero 2011 - 05:38

Hola a todos

Decir que no tengo mucha experiencia con bases de datos, he hecho un par de aplicaciones que las usan y siempre usé MySQL.

Ahora voy a ver si modifico un programa que hice hace algún tiempo, ahora guarda los datos en una serie de archivos en los que voy añadiendo los datos que ingresa el usuario. He pensado cambiar y usar una base de datos, pero no se cual usar.

No se si estoy muy equivocado, pero creo que hay algunas que te guardan los datos en un archivo en la carpeta que yo elija o en la que esté el programa. ¿SQLlite? ¿Es así y hay más gestores de ese tipo? Me vendría estupendo ya que mi programa tiene una opción de hacer y restaurar una copia de seguridad de los datos.

Una condición indispensable es que haya versión Linux y windows.

Estoy un poco perdido y no se cual usar. A ver que me recomendáis.

Saludos
  • 0

#2 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.484 mensajes
  • LocationMallorca

Escrito 26 enero 2011 - 06:28

Hola

Yo te recomiendo Firebird.

http://www.firebirdsql.org/

Tiene versión Windows y Linux. Puedes utilizarla desde Lazarus mediante Zeos (aparte de que Lazarus mismo ya incorpora de serie componentes para Interbase/Firebird).

Es una base de datos muy completa, y permite trabajar guardando los datos en un archivo en la misma carpeta de tu aplicación. NOTA: Incluso tiene una instalación "Embedded", para instalaciones monousuario, en la que no se instala ningún software de Servidor para la Base de Datos, todo lo necesario son un conjunto de Dll's que solo tienes que copiar en la carpeta de tu aplicación.

Además hay una base considerable de programadores Delphi/Lazarus en Firebird, por lo que vas a encontrar mucha ayuda para los problemas que te aparezcan. Aquí mismo hay un Foro dedicado solo a Firebird.

PD: Por cierto, para hacer una copia de seguridad, no necesitas que la base de datos esté en la carpeta de tu aplicación. Usando el API del cliente de Firebird puedes hacer una copia de seguridad desde cualquier ordenador, aunque ni siquiera tengas acceso físico a la carpeta donde se encuentra la base de datos.
  • 0

#3 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.137 mensajes

Escrito 26 enero 2011 - 07:02

Hola

Yo te recomiendo Firebird.

http://www.firebirdsql.org/

Tiene versión Windows y Linux. Puedes utilizarla desde Lazarus mediante Zeos (aparte de que Lazarus mismo ya incorpora de serie componentes para Interbase/Firebird).

Es una base de datos muy completa, y permite trabajar guardando los datos en un archivo en la misma carpeta de tu aplicación. NOTA: Incluso tiene una instalación "Embedded", para instalaciones monousuario, en la que no se instala ningún software de Servidor para la Base de Datos, todo lo necesario son un conjunto de Dll's que solo tienes que copiar en la carpeta de tu aplicación.

Además hay una base considerable de programadores Delphi/Lazarus en Firebird, por lo que vas a encontrar mucha ayuda para los problemas que te aparezcan. Aquí mismo hay un Foro dedicado solo a Firebird.

PD: Por cierto, para hacer una copia de seguridad, no necesitas que la base de datos esté en la carpeta de tu aplicación. Usando el API del cliente de Firebird puedes hacer una copia de seguridad desde cualquier ordenador, aunque ni siquiera tengas acceso físico a la carpeta donde se encuentra la base de datos.


Me identifico 100% con la recomendación de Marc, y además agregaría la facilidad (en el futuro)  para escalar la aplicación a  Multipuesto.
  • 0

#4 fredycc

fredycc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 874 mensajes
  • LocationOaxaca, México

Escrito 26 enero 2011 - 08:26

Apoyo a Firebird 100%, aquí algunas razones: http://www.slideshar...cos-de-firebird

además podrá darte un panorama general de las demás soluciones de base de datos y sus distintos dobles licenciamientos. También es recomendable PostgreSQL, aunque en lo personal no lo he usado, pero sus referencias son muy buenas también.

Se me olvidaba comentar, SQLite también resulta muy buena opción, solo hasta donde sé y la he usado es recomendable en ambientes monousuario, tiene triggers que es algo que me impresionó pues el mismo archivo lo llevas de un windows mobile a un ubuntu y lo abres sin problemas, o de linux a mac y funciona a así como así, eso es fantástico y es robustito, lo usé para cargar localidades, municipios y entidades además de códigos postales de México (varios miles de regirstros) en windows mobile y el performance en búsquedas siempre fue muy bueno.

Saludos
  • 0

#5 jc

jc

    Member

  • Miembros
  • PipPip
  • 40 mensajes
  • LocationMojácar, Almería, España

Escrito 26 enero 2011 - 10:59

Hola

3 respuestas que coinciden en la misma, pues nada, le echaré un vistazo a firebird  (y)

PD: Por cierto, para hacer una copia de seguridad, no necesitas que la base de datos esté en la carpeta de tu aplicación. Usando el API del cliente de Firebird puedes hacer una copia de seguridad desde cualquier ordenador, aunque ni siquiera tengas acceso físico a la carpeta donde se encuentra la base de datos.


Lo de la copia de seguridad lo decía porque como lo tengo ahora el programa crea los archivos de datos en una carpeta y al hacer copia de seguridad lo que hago es meter todo el contenido de esa carpeta dentro de un archivo comprimido. Así, si la base de datos me crea el archivo de datos en la carpeta donde esté el programa (o si se puede escoger en la que crearlo), apenas tengo que tocar esa parte del código.

Saludos
  • 0

#6 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.484 mensajes
  • LocationMallorca

Escrito 26 enero 2011 - 12:15

Lo de la copia de seguridad lo decía porque como lo tengo ahora el programa crea los archivos de datos en una carpeta y al hacer copia de seguridad lo que hago es meter todo el contenido de esa carpeta dentro de un archivo comprimido. Así, si la base de datos me crea el archivo de datos en la carpeta donde esté el programa (o si se puede escoger en la que crearlo), apenas tengo que tocar esa parte del código.


Si en ese momento no hay ningún cliente conectado a la base de datos, entonces es totalmente seguro hacer la copia de seguridad como dices (solo recuerda de cerrar cualquier conexión que puedas tener abierta).
  • 0

#7 jc

jc

    Member

  • Miembros
  • PipPip
  • 40 mensajes
  • LocationMojácar, Almería, España

Escrito 27 enero 2011 - 06:21

Hola de nuevo

NOTA: Incluso tiene una instalación "Embedded", para instalaciones monousuario, en la que no se instala ningún software de Servidor para la Base de Datos, todo lo necesario son un conjunto de Dll's que solo tienes que copiar en la carpeta de tu aplicación.


Mirando en la web de firebird veo que versión "Embedded" solo hay para windows, tampoco me aparece ningún paquete "Embedded" en los repositorios. ¿Es así?

Saludos
  • 0

#8 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.484 mensajes
  • LocationMallorca

Escrito 27 enero 2011 - 07:02

Aquí tienes un tutorial para utilizar Firebird Embedded en Linux (viene integrado en el paquete Classic Server)

http://www.firebirdf...inux-HOWTO.html

NOTA: No lo encontrarás en los repositorios porqué la gracia de un Firebird Embedded es que no hay que hacer ninguna instalación. Funciona con solo copiar un conjunto de archivos en la carpeta de tu aplicación.

Saludos.
  • 0

#9 jc

jc

    Member

  • Miembros
  • PipPip
  • 40 mensajes
  • LocationMojácar, Almería, España

Escrito 01 febrero 2011 - 05:06

Hola de nuevo.

Bueno, tras el fin de semana peleándome con firebird, paso a comentar lo que he conseguido y lo que no.

Bajo windows conseguí que me funcionara. Me bajé el paquete de windows y en el viene un archivo de texto en el que explica los .dll que hay que copiar a tu proyecto para que funcione todo.

Así que creé un pequeño proyecto Lazarus, inserté los componentes y a la hora de establecer las propiedades encuentro que al dar el valor "true" a la propiedad "Connected" del componente "TIBConnection" me dice que no encuentras las librerías.

En cambio, si esas propiedades las establezco en el evento "OnShow" del formulario, compilo y ejecuto el programa, funciona perfecto, supongo que será cuestión de decirle a Lazarus dónde debe buscar las librerías.

Con linux el resultado ha sido diferente, primero, siguiendo el link que pusiste, conseguí instalar y puedo crear y usar bases de datos con el comando "isql", pero a la hora de usar Lazarus no funciona.

El mismo ejemplo anterior, bajo linux, en el entorno Lazarus ocurre igual en linux, al dar el valor "true" a "Connected" obtengo el mismo resultado. Si hago todo en el evento "OnShow", compilo y ejecuto, también me dice que no encuentra las librerías. Sin embargo, esto en windows funcionaba correctamente.

Buscando por Internet encontré la siguiente web:
http://accountingplu...dded-linux.html

Haciendo el pequeño script que ahí propone parece funcionar, pero da otro error: "unable to complete network request to host "localhost"".

Bajo windows me funciona dejando la propiedad "HostName" del componente "TIBConnection" en blanco, pero en linux, ponga lo que ponga, obtengo el error anterior.

Examinando el paquete de linux que me descargué, veo que hay un pequeño archivo de texto en el que explica como hacer la instalación "embedded", pero al abrirlo me llevo la sorpresa de que la explicación es sobre la versión windows, de linux no dice nada de nada. No se si será un error que se les pasó al crear el paquete.

En fin, seguiré peleando hasta que lo consiga.

Saludos
  • 0

#10 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.484 mensajes
  • LocationMallorca

Escrito 01 febrero 2011 - 05:54

Hola.

En tu equipo de desarrollo no es aconsejable utilizar la versión Embedded. Lo aconsejable es usar la versión completa.

La razón es que solo puede haber una conexión a las bases de datos Embedded. Y mientras estás desarrollando es habitual tener dos y tres conexiones simultáneas abiertas contra la base de datos (ejplo. una conexión desde un programa de gestión de la base de datos, como el maravilloso y gratuito IBExpert, otra conexión que mantiene el IDE de Delphi o Lazarus, y una tercera conexión cuando ejecutas en depuración la aplicación).

Así pués, en la fase de desarrollo puedes utilizar la versión completa de Firebird, sin estar sujeto a las restricciones de la versión Embedded. Y luego, cuando distribuyas la aplicación, utiliza ya solo la versión Embedded en los ordenadores finales (y es que la misma base de datos que has creado con la versión completa de Firebird, te sirve perfectamente igual bajo la versión Embedded, no necesitas configurar nada en la base de datos para pasar de utilizarla desde la versión completa a la versión Embedded).

Con esto no tendrás los problemas que tienes ahora de que Lazarus no puede abrir la base de datos, puesto que no localiza las librerías Embedded de Firebird (que se encuentran en la carpeta de tu aplicación, y tendrías que añadir al PATH general o al del proyecto de Lazarus).

NOTA: ¿ Ya te has instalado IBExpert Personal Edition ?, es casi imprescindible para utilizar cómodamente Firebird.

http://ibexpert.net/...PersonalEdition

Saludos.
  • 0

#11 jc

jc

    Member

  • Miembros
  • PipPip
  • 40 mensajes
  • LocationMojácar, Almería, España

Escrito 01 febrero 2011 - 04:04

Hola

En tu equipo de desarrollo no es aconsejable utilizar la versión Embedded. Lo aconsejable es usar la versión completa.

Sí, estaba pensando en hacer eso mismo, dado los problemas que me está acarreando la instalación en linux y, ahora mismo, acabo de terminar con éxito la instalación.

... Y luego, cuando distribuyas la aplicación, utiliza ya solo la versión Embedded en los ordenadores finales...

Ahí tampoco tendré muchos problemas, ya que los programas que hago no los distribuyo, los suelo usar yo en mis tiendas, por lo que no tendré problemas. Como mucho se los pasaré a algún familiar que me hace de "tester" buscando errores y eso, pero suelo hacerlo solo con los juegos.

El motivo de usar windows y linux es que en casa uso linux, pero en las tiendas me veo obligado a usar windows debido a un programa que no tiene versión linux y que no he conseguido (aun) hacer andar con wine.

NOTA: ¿ Ya te has instalado IBExpert Personal Edition ?, es casi imprescindible para utilizar cómodamente Firebird.

http://ibexpert.net/...sonalEdition[/]

Acabo de instalarlo, una versión de prueba, no encontré ninguna gratuita. Para linux no encontré ese programa, pero sí otro, FlameRobin, que hace el mismo trabajo, aunque no es tan amigable como ese, pero me apaño. De todas formas estaba acostumbrado a crear las bases de datos y las tablas MySQL desde la consola y no he tenido problemas en ese aspecto con firebird.



Respondí entre líneas usando el color verde, para no hacer muchos quote.


Añadir que la instalación sobre linux me costó bastante, hasta que probé a instalar desde consola con apt (antes lo hacía con kpackagekit), apt mostraba un error que kpackagekit no y por ahí pude solucionarlo, además había que hacer "a mano" un enlace en la carpeta /usr/lib que apuntara a la librería de firebird.


Saludos

  • 0

#12 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.484 mensajes
  • LocationMallorca

Escrito 02 febrero 2011 - 12:11

Hola JC.

Gracias por compartir la instalación en Linux, y lo siento, no te puedo ayudar mucho con tus dudas en ese entorno, ya que no lo uso habitualmente.

FlameRobin es una buena herramienta para gestionar la base de datos, aunque como dices, no es tan amigable como un producto comercial como IBExpert. La versión de prueba que te has descargado dejará de ser válida en unos 30 días (creo). La versión totalmente gratuita es la Personal Edition (no lleva depurador de procedimientos almacenados, y alguna característica secundaria más), es la que yo uso normalmente.

Como dice en esta página http://ibexpert.net/...PersonalEdition Para conseguir la versión Personal Edition, tienes que registrarte aquí (utiliza el segundo botón : "Register"), y te enviarán por correo un login y password para poder descargarla.

http://ibexpert.net/Downloadcenter/

Saludos.
  • 0




IP.Board spam blocked by CleanTalk.