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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-10-2014
Avatar de cl2raul
cl2raul cl2raul is offline
Miembro
 
Registrado: sep 2008
Ubicación: La Habana, Cuba
Posts: 88
Poder: 16
cl2raul Va por buen camino
Question como crear mi propio server de base de datos

Hola a todos puede ser q sea una locura pero me gustaría q me recomendaran como hacerlo, explico, uso bases de datos SQLite3, q son usadas por varias aplicaciones que funcionan conjuntamente, para q se entienda las he ido creando según las necesidades de los clientes. Las bases de datos se ejecutan localmente(en la misma pc del los programas), he probado con mySQL y tengo problemas cuando lo conecto y no quiero salirme de los sqlite q son muy rapidos...
la idea es crear una aplicacion en el servidor q cargue las bases de datos (serverA), y los programas clientes se conectaran al serverA para identificarse y utilizar las bases de datos... algo tan sencillo como eso.

alguien tiene una idea q componentes de delphi xe5 puedo usar, gracias de antemano
Responder Con Cita
  #2  
Antiguo 04-11-2014
darkamerico darkamerico is offline
Miembro
 
Registrado: dic 2010
Posts: 225
Poder: 14
darkamerico Va por buen camino
Hola

Haber lee esto, quizás te ayude.
http://www.codeproject.com/Articles/...Implementation

Un Saludo
Responder Con Cita
  #3  
Antiguo 11-11-2014
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Quizá te venga mejor migrar a un sistema de bases de datos en red. Incluso puedes añadir una opción de configuración que permita al usuario elegir qué sistema de base de datos usar. Ya que los componentes de Delphi y Lazarus para bases de datos tienen (casi) los mismos métodos y propiedades, no resulta difícil.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #4  
Antiguo 11-11-2014
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por cl2raul Ver Mensaje
he probado con mySQL y tengo problemas cuando lo conecto y no quiero salirme de los sqlite q son muy rapidos...
No es muy buena idea negarse a elegir la opcion apropiada (un software hecho para multiusuario) por simple familiaridad como la opcion que tengo a la mano, pero que no solo no es la opcion apropiada, es *inversa* (sqlite es para app monousuario y embeida a la misma = Lee el link. Eso es lo que dicen sus creadores. Hazles caso, es cierto).

Usar la herramienta/estrategia adecuada para el problema a la mano es uno de los fundamentos de una buena ingenieria.

Pa rematar "problemas cuando lo conecto" es un problema demasiado trivial! No es que sea mas lento, que no cumpla, que le falta.. simplemente no lo pudiste conectar?

Tener problemas en cuanto a conectarse, o aprender una nueva sintaxis, comandos, etc es TRIVIAl vs intentar implementar lo que hace mysql, pero en sqlite. Si no puedes con lo primero, ni a palos podras con lo segundo.
---

El asunto de fondo es que un software mult-usuario y mucho mas, una base de datos es un animal mas complejo que uno local. Es por eso que es mas "grande" el código de Mysql/Postgresql/firebird que el de sqlite. Aun si ambos tuvieran exactamente la misma funcionalidad, el con soporte mult-usuario/concurrente/servidor implementaria mas cosas y tendría que preocuparse de mas problemas.

Problemas que supones que puedes resolver mejor que lo que hacen los equipos de desarrolladores de Mysql. E incluso, de sqlite.

Torciendo un dicho famoso en cuanto el desarrollo de software: "Detrás de cada app de base de datos local complicada se esconde una implementación incompleta, defectuosa, lenta y mal enfocada de la mitad de una app de base de datos multi-usuario".

---

En resumen: Usar la herramienta adecuada. Firebird es la mas parecida a sqlite en cuanto a que puede ser tanto embebida como remota. No soy para nada fan de Mysql, firebird & postgres son mucha mejor opción.

Existe un producto que es asi como lo quieres: http://www.sqlabs.com/cubesql.php. Si ya estas muy amarrado a sqlite, yo me iria por esto, como *segunda mejor opcion* a usar la herramienta adecuada.
---

Ahora, aqui no estamos por desanimar a nadie de que intente alcanzar la luna y reinventar la rueda. De hecho, un programador hace exactamente eso y es lo bonito de esta profesión. Si a algún demente le da por hacer un sistema operativo en javascript, pues que lo haga!. Solo te estoy informando que la complejidad de intentar que sqlite sea como mysql es mayor a la de que mysql sea como mysql.

---
"Como crear mi propio server de X"

es lo que estas preguntando. Eso tiene una respuesta generica. Todos los "server" son masomenos la misma cosa: Una app independiente, que esta siempre "viva" probablemente como un servicio del OS, que acepta comandos de forma remota y usa un canal de comunicación para entenderse con N-clientes.

Digamos que lo mas simple fuera que usaras HTTP. Tomas Indy o Synapse, lo pones a escuchar en puerto, y recibes comandos en HTTP. Digamos que es un select, un cliente le mandaria algo como:

HTTP GET localhost:8070:/tablas/clientes/

y en el servidor tendrías una función que a esa ruta le retornas, quizas en JSON, los resultados.

En Delphi podrias usar DataSnap para eso, y te ahorras un monton de codigo elemental. El lio lo tendrias con el hecho de que N-clientes pueden acceder al mismo exacto tiempo a tu BD. Sqlite se puede usar en modo de multiples hilos, pero debes prestar atencion a como exactamente hacer eso bien.

Hacer una implementacion basica de esto no debe tomarte mas de un par de dias, y quizas te sorprenda que parece ser mucho mas facil de lo que imaginabas. Asi que te recomiendo 100% que hagas eso (total: Que tu app pueda "hablar" http es de lo mas util y te da medio camino a que puedas tener clientes web/moviles, asi que es una habilidad esencial en estos dias).

PERO

Si pretendes que tu app funcione responsablemente con una carga de usuarios concurrentes importante, entonces debes aceptar que sqlite no es la mejor opcion. Recuerda:


"Detrás de cada app de base de datos local complicada se esconde una implementación incompleta, defectuosa, lenta y mal enfocada de la mitad de una app de base de datos multi-usuario".
__________________
El malabarista.
Responder Con Cita
  #5  
Antiguo 11-11-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por mamcx Ver Mensaje
"Detrás de cada app de base de datos local complicada se esconde una implementación incompleta, defectuosa, lenta y mal enfocada de la mitad de una app de base de datos multi-usuario".
Nunca lo había leído, aunque suena bien
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como montar un archivo de base de datos en su servidor SQL server JuanErasmo MS SQL Server 4 21-04-2008 15:40:16
Como Crear Base De Datos Con Sql Server flor MySQL 1 09-02-2008 20:42:59
como crear una base de datos vril Firebird e Interbase 2 01-08-2007 03:15:52
Como conectar base de datos SQL SERVER con Delphi 5 olbeup Conexión con bases de datos 4 05-08-2005 14:38:45
¿Cómo crear base de datos en IB 6.5? Eurosil Firebird e Interbase 1 10-11-2003 15:18:33


La franja horaria es GMT +2. Ahora son las 00:10:56.


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