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)
-   -   MySQL, Delphi y cliente servidor (https://www.clubdelphi.com/foros/showthread.php?t=36266)

Maibok 06-10-2006 15:30:38

MySQL, Delphi y cliente servidor
 
Bunas a todos. Quiero hacer una aplicación tipo cliente servidor alojando la base de datos en un servidor que use MySQL 5 y acceder a ella desde otros ordenadores (clientes) con un programa desarrollado en Delphi. Me podríais decir a grandes rasgos los pasos que debería hacer??.

Una vez esté desarrollado el programa en delphi en el cliente para acceder a la base de datos en el servidor serviría con poner la IP del servidor no??? y si se cambia de servidor cambiar la ip verdad??

Me he decidido por mysql 5 porque igual desarrollo otra aplicación que acceda a la misma base de datos, pero esta ya en php, y hay mucha documentación para unir php y mysql. Nada más, sime podéis ayudar un poco os lo agradecería. Ya sé que la pregunta es muy general, pero de momento es lo que necesito, la idea en general. Y si conocéis algún programita desarrollado de prueba que haga eso también os lo agradecería. Saludos!!!

Caral 06-10-2006 17:13:01

Hola Maibok
Para empezar tienes varias opciones para esto, conexion con ado, zeos entre otros, particularmente diria que si la base de datos contiene mucha informacion yo te recomiento zeos.
Si esta es tu opcion tendrias que vajar los componentes zeos, que son de uso gratis, instalarlos en delphi, siguiendo las instrucciones y despues vuelve y te ayudamos por aqui.
De interesarte ado, es mas simple ya que delphi lo tiene, nada mas indica tu opcion y te ayudamos.
Saludos

roman 06-10-2006 17:26:20

Hace unos días alguien mencionó algún problema que había tenido usando Zeos para acceder a MySql 5.0 y sí hay que tomarlo con cuidado porque la última versión estable de Zeos (la 6.1.5) sólo manejaba MySql 4.x por lo que no será de extrañarse que no todo funcione bien con la 5.x.

Si estás dispuesto a desembolsar un poco, no es gran cosa, yo optaría por MyDac de CoreLab. He usado ambas y me parecen más robustas éstas, además de que están siempre al día en cuanto a soprte para nuevas versiones.

// Saludos

Caral 06-10-2006 17:34:29

Estoy de acuero con Roman
El problema de MyDac es ese, hay que compralo, perdona desconocia que zeos tuviese problemas con la version 5, si es asi y no hay por donde agarrarse se tedria que usar ado, No es asi?
Saludos

poliburro 06-10-2006 18:19:41

Amigo, Yo te recomendaría que si deseas hacer una aplicación de dos capas, lo mejor que puedes usar es MsSql + ADO, colocando las reglas del negocio en la parte del servidor de base de datos (USando para ello Sps, trigers, funciones, etc etc etc) y solo la funcionalidad en la parte de la apliacción.


Mysql no es una buena opción para desarrollos de escritorio N-Tier. (Lo siento fans de Mysql), puesto que una de sus mayores desventajas es precisamente la capa de coenxión en aplicaciones de escritorio. ya que por un lado si deseas usar ADO, mysql solo proporciona conectores Odbc con lo que la capa se hace más gruesa además de que la versión actual de ODBC ofrece un soporte muy pobre a los Sps de Mysql 5. Por otro lado zeos te permite mantener una capa de conexión delgada pero tiene muchas desventajas precisamente en el soporte a Sps y seguridad.


Para el web es grandioso, pero para aplicaciones Ntier no lo recomiendo. A menos que Mysql saque un proveedor OleDb.


suerte

roman 06-10-2006 18:56:22

Uso MySql sin ningún problema en aplicaciones de escritorio. Claro que no uso ODBC y tampoco Zeos. Uso MyDac.

// Saludos

poliburro 06-10-2006 19:53:55

y podrías comentarnos román, como manejas tus transaciones?
como manejas tu lógica de negocios?
en cúantas capas están desarrolladas tus aplicaciones?.
Como menejas tus conexiones?


Sería muy bueno que lo comentaras ya que así, quien se está iniciando en mysql y pudiera considerar esos aspectos en base a tu experiencia con Mysql y MyDac

roman 06-10-2006 20:01:01

¿Cómo manejo mis transacciones? Pues con StartTransaction, Commit y Rollback. ¿En cuántas capas? Aquí estábamos hablando de dos ¿qué no? No uso stored procedures, no me gustan, no los he necesitado. ¿A qué te refieres con manejar conexiones?

Por cierto, conste que yo no estoy diciendo que sea mejor usar MySql que MS SQL ni alrevés, sólo que sí que se puede hacer la conexión sin ODBC.

// Saludos

poliburro 06-10-2006 20:24:26

:) tampoco creí eso, solo que me dió curiocidad saber como programabas en cliente servidor con mydac y mysql.


Te recomendaría mucho que evaluaras el uso de Sps ya que de verdad te facilitan mucho la tarea, y en cuanto a las conexiónes mi pregunta era sobre si las usabas persistentes o dinámicas, ahh y de las transaccciones si lo hacias en la aplicación con mydac o en la base de datos. incluyendo la lógica de negocios.

Te preguntaba eso ya que son cuestiones de vital importancia a considerar cuando desarrollas aplicaciones Ntier

:)

JXJ 06-10-2006 22:02:52

Poliburro.

eso de los Stored procedures, como funcionan, o en donde
es mejor emplearlos.

'¿podrias poner algun ejemplo donde los usas con su codigo fuente?

Gracias

poliburro 07-10-2006 08:22:28

Un procedimiento almacenado es un script escrito en lenguaje T-Sql y es almacenado por el motor de base de datos que tú elijas. Es muy recomendable su uso Por entre muchas, las siguientes razones.


1- Ya que el motor de base de datos es quíen análiza y optimiza al momento de ser creados los Procedimientos almacenados, su ejecución en cada llamada tiene un mayor rendimiento a que si estás lanzando querys que deben ser analizadas y optiminzadas por cada ejecución. En este punto otra ventaja es que en sql server puedes hacer uso de los planes de ejecución para evitar los Index scan que decrementan terriblemente el rendimiento del motor de base de datos.

2- El leguaje T-SQl te permite optimizar operaciones que si las haces desde tu aplicación requeririan el lanzamiento de varias consultas al motor de base de datos.


3- Al tener tu lógica en el motor de base de datos, un cambio en la manera en que debe ser procesada determinada acción sobre tus tablas es una tarea sencilla en comparación de las aplicaciónes que tienen regadas copnsultas de acceso a datos. Además de que un Sp que desarrollaste para un sistema de escritorio puede funcionarte para un fron-end web. En cambio, si usas consultas deberás hacer doble trabajo.





4-Imagina que tienes una aplicación que lanza código de decenas o cientos de líneas para consultar datos, ahora imagina que tu aplicación es ejecutada por 100 clientes concurrentes. Resultado de esto? un desperdicio innecesario de recursos de red, y un decremento terrible del motor de base de datos. Al utilizar Sps, solo invocas el nombre del sp, le pasas los parámetros, si acaso los requiere, y listo, ya que el motor previamente ha optimizado el script, su degradación es mínima

Hay muchás más razones del por que se deben usar sps. y su uso es muy sencillo,

tomas la paleta ADO seleccionas el AdoStoredProcedure y haces


ADOStoredProc1.Parameters.CreateParameter(Nombre,Tipo,Direccion,Tamaño,ValorInicial)


Suerte

FerCastro 09-10-2006 20:39:48

MyDAC
 
Te recomendaría que utilizaras el componente MyDAC de crlab pues es muy robusto estable y sencillo de usar, además que no tienes que instalar nada más para acceder a las tablas.

El precio no es tan alto (algo así como 70 USD)

Saludos cordiales

makina 10-10-2006 01:04:13

La ventaja que veo de MySQL sobre MSSQL es que MySql es gratis y es una excelente base de datos, si no SAP no los habria elegido para construir su base de datos MaxDB, Ademas el uso de sps (o pl's como se llaman en oracle) depende de que tipo de aplicacion necesites desarrollar, el uso de sp's es muy bueno, sin embargo tiene una gran limitante, si tu deseas hacer una aplicacion portable y multi plataforma los sps solo te pondran obstaculos, ya que los sps de mssql tienen diferente sintaxis a la de mysql, a oracle y entre cualquier bd, asi que uno puede precindir de ellos, un ejemplo de ERP robusto y que no usa SP's en su estrucutura es Protheus de microsiga (una empresa brasileña) y no por esto deja de ser rapido, estable, robusto y multiplataforma ( corre desde tablas planas c-tree, dbf, mysql, mssql, db2, postgre.. hasta oracle) y con respecto a mssql si tengo malas experiencias, intelisis (un erp mexicano) basa su logica en sps, y por mala suerte he tenido problemas con su performance, es decir se alenta cuando por descuido construyes un sp no optimizado, por su puesto esto no ocurre en oracle, sap aunque soporta cualquier bd recomienda usar oracle, meta4 (un gestor de RH español) de igual forma, por ejemplo meta4 es muy estable en oracle no siendo asi en mssql, asi que si puedes elegir que bd utilizar (y tienes el $ suficiente) pues elige oracle, si no pues mysql, mssql es bueno pero no lo mejor. Saludos

JXJ 11-10-2006 05:56:57

suena interesante poliburro.

pero no tengo idea de como meterle los stored procedures en
el motor de la base de datos.

gracias


La franja horaria es GMT +2. Ahora son las 21:08:46.

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