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)
-   -   ADO Vs ODBC Vs ZEOS LIB (https://www.clubdelphi.com/foros/showthread.php?t=72729)

Diego827 09-03-2011 05:28:35

ADO Vs ODBC Vs ZEOS LIB
 
Las razones por las cuales coloco este hilo aqui es porque SOLO Clubdelphi puede responderlo con la CALIDAD experimentada de los colaboradores, mi consulta es: Cual es la mejor forma de accesar a una base de datos Mysql: ADO, ODBC o ZeosLib? Desde ya agradecido!:rolleyes: y cuales son las ventajas de uno sobre otro?

Ñuño Martínez 09-03-2011 09:25:20

Accesar, accesar... Pues no, con "accesar" no me sale nada. ¿Es un nuevo paradigma de programación? ¿Un nuevo protocolo de comunicaciones?

Delfino 09-03-2011 10:43:01

Yo usaría DBExpress, por lo menos es el mas rápido..

Casimiro Notevi 09-03-2011 13:04:49

Cita:

Empezado por Ñuño Martínez (Mensaje 392945)
Accesar, accesar... Pues no, con "accesar" no me sale nada. ¿Es un nuevo paradigma de programación? ¿Un nuevo protocolo de comunicaciones?

Creo que algunas personas usan esa palabra para decir "acceder", no sé por qué, seguramente es algún derivado de una palabra en inglés, aunque no puedo confirmarlo. :rolleyes:

Si está preguntando qué componentes se puede usar para acceder a mysql, de los nombrados, yo optaría por zeos o por el que ha indicado Delfino.

MAXIUM 09-03-2011 15:17:41

Diego827, siempre ha de buscarse el menor número de intermediarios entre una aplicación y el acceso de este hacia la base de datos (creo que le llaman, capas...), junto con la velocidad en que lo hacen. ODBC queda en último lugar, siendo Zeos, más compatible.

Ahora, también depende de que base de datos uses, ya que hay componentes especializados en alguna BD, donde la velocidad de accesos aumenta considerablemente.

rgstuamigo 09-03-2011 17:09:08

Efectivamente estoy totalmente con MAXIUM, lo primero es que... hay que conocer como funcionan las diferentes tecnologías de acceso, para escoger la mejor...
A continuacion te pongo una imagenes que estan en la página de los componentes MyDAC que tambien sirven para conectarse a MySQL, desde luego éstos componentes son de pago y mi propósito no es hacerles publicidad sino poderte mostrar en imagenes la manera en que se puede trabajar para acceder a una DB ya que "una imagen vale más que mil palabras"

Si trabajamos con los componentes de la paleta BDE la conexion sería:

Lógicamente usando ADO para conectar a MySQL la imagen de conexion sería muy similar a la anterior(no tengo ninguna imagen para mostrarte :o) pero seria algo como:
Cita:

Programa <---> ADO <---> Proveedor de datos <---> Base de datos
Si usamos los componentes Zeos ,pues internamente éstos componentes utilizan la librería cliente de MySQL(*.dll) para conectarse por lo cual la imagen sería algo como:

Desde luego existen componentes que la conexion lo hacen directamente (sin intermediario) con lo cual tenemos la siguiente Imagen:

Espero haber podido colaborar en algo...;)
Saludos...:)

Delfino 09-03-2011 17:24:54

Cita:

Empezado por rgstuamigo (Mensaje 392987)
Desde luego existen componentes que la conexion lo hacen directamente (sin intermediario) con lo cual tenemos la siguiente Imagen:

Los componentes nunca hablaran directamente con la BD. Siempre habrá una dll, API etc. que ejerce de intermediario entre los componentes y el servidor. Por lo que el ultima imagen no existe en el caso de BDs cliente servidor..

Al González 09-03-2011 17:41:42

Cita:

Empezado por Delfino (Mensaje 392948)
Yo usaría DBExpress, por lo menos es el mas rápido..

También yo optaría por dbExpress (a veces llamado DBX). Es nativo, rápido y relativamente preparado para cuando el patrón diga: "pero yo quiero que la base de datos sea Oracle / Firebird / DB2 / SQL Server / Informix / etc.".

Además, esto "obliga" a usar TClientDataSet, con lo cual tienes un montón de ventajas para el manejo de los registros en el lado cliente.

El hacerlo en dos o tres capas es opcional. Se tiene el mito de que al usar dbExpress hay que tener un servidor de aplicaciones (capa intermedia); pues no es así.

Saludos.

Al González. :)

P.D. Y sí, es acceder, no accesar. Y, en el caso de una DLL, una colección de clases, una colección de funciones, etc., es biblioteca, no librería. ;)

Casimiro Notevi 09-03-2011 17:49:31

Si esa API fuesen las propias funciones de la misma BD, entonces sí sería posible hacerlo sin intermediario alguno.

rgstuamigo 09-03-2011 17:51:26

Cita:

Empezado por Delfino (Mensaje 392989)
Los componentes nunca hablaran directamente con la BD. Siempre habrá una dll, API etc. que ejerce de intermediario entre los componentes y el servidor. Por lo que el ultima imagen no existe en el caso de BDs cliente servidor..

Es lógico lo que tú dices, pero hay que entender que muchas veces tales API y/o dll son implementadas o utilizadas directamente en los componentes, sin necesidad de tener una DLL, de ahí que los componentes MyDAC por ejemplo pueden trabajar en "modo cliente"(usando la dll) o en modo nativo(sin ninguna dll).;)
Saludos...:)

Diego827 09-03-2011 20:52:52

Cita:

Empezado por rgstuamigo (Mensaje 392987)
Efectivamente estoy totalmente con MAXIUM, lo primero es que... hay que conocer como funcionan las diferentes tecnologías de acceso, para escoger la mejor...
A continuacion te pongo una imagenes que estan en la página de los componentes MyDAC que tambien sirven para conectarse a MySQL, desde luego éstos componentes son de pago y mi propósito no es hacerles publicidad sino poderte mostrar en imagenes la manera en que se puede trabajar para acceder a una DB ya que "una imagen vale más que mil palabras"

Si trabajamos con los componentes de la paleta BDE la conexion sería:

Lógicamente usando ADO para conectar a MySQL la imagen de conexion sería muy similar a la anterior(no tengo ninguna imagen para mostrarte :o) pero seria algo como:

Si usamos los componentes Zeos ,pues internamente éstos componentes utilizan la librería cliente de MySQL(*.dll) para conectarse por lo cual la imagen sería algo como:

Desde luego existen componentes que la conexion lo hacen directamente (sin intermediario) con lo cual tenemos la siguiente Imagen:

Espero haber podido colaborar en algo...;)
Saludos...:)

Agradezco muuucho la dedicacion de tu respuesta rgstuamigo!!! como siempre: Casimiro una gran ayuda y de Delfino no digamos!!! gracias. Creo que ahora me queda claro que mientras menos intermediarios (capas) existan entre la base de datos y la aplicacion es mejor (ahora obvio antes no tanto :), muy agradecido MAXIUM). Gracias!!! ;)

Saludos -+-

Diego827 09-03-2011 20:56:04

Cita:

Empezado por Diego827 (Mensaje 392941)
Las razones por las cuales coloco este hilo aqui es porque SOLO Clubdelphi puede responderlo con la CALIDAD experimentada de los colaboradores, mi consulta es: Cual es la mejor forma de accesar a una base de datos Mysql: ADO, ODBC o ZeosLib? Desde ya agradecido!:rolleyes: y cuales son las ventajas de uno sobre otro?

Cita:

Empezado por Ñuño Martínez (Mensaje 392945)
Accesar, accesar... Pues no, con "accesar" no me sale nada. ¿Es un nuevo paradigma de programación? ¿Un nuevo protocolo de comunicaciones?

Lo siento!!! :cool:

Casimiro Notevi 09-03-2011 21:43:14

Cita:

Empezado por Diego827 (Mensaje 393031)
[..] Creo que ahora me queda claro que mientras menos intermediarios (capas) existan entre la base de datos y la aplicacion es mejor (ahora obvio antes no tanto :)

Eso depende, no hay nada "mejor o peor", todo es relativo. Por ejemplo, usas firebird y has elegido los componentes de accedo directo IBX (los que vienen con delphi). Perfecto, accede muy rápidamente y estás contentísimo, pero un día llega un cliente y dice: "es que aquí nosotros usamos postgresql", ¿qué haces?.
Lo tienes difícil en ese caso.
Pero si en lugar de IBX, te decantaras por Zeos (por ejemplo), entonces casi no tendrías problemas en acceder a ambas BD, salvo algunos arreglitos que siempre son necesarios.
Por eso, todo depende, depende de lo que quieres hacer y del futuro de lo que quieras hacer.

gatosoft 09-03-2011 22:23:00

Yo apoyo la respuesta de Al, en un 100% estoy de acuerdo con todo...

sobre todo por que hay que mirar a futuro, el respaldo y adaptabilidad que tendrá tu aplciación a nuevas tecnologías, y esta es a la que le está apostando Embarcadero

Cita:

Empezado por Al González (Mensaje 392991)
También yo optaría por dbExpress (a veces llamado DBX). Es nativo, rápido y relativamente preparado para cuando el patrón diga: "pero yo quiero que la base de datos sea Oracle / Firebird / DB2 / SQL Server / Informix / etc.".

Además, esto "obliga" a usar TClientDataSet, con lo cual tienes un montón de ventajas para el manejo de los registros en el lado cliente.

El hacerlo en dos o tres capas es opcional. Se tiene el mito de que al usar dbExpress hay que tener un servidor de aplicaciones (capa intermedia); pues no es así.

Saludos.

Al González. :)

P.D. Y sí, es acceder, no accesar. Y, en el caso de una DLL, una colección de clases, una colección de funciones, etc., es biblioteca, no librería. ;)

Zeos, me pareció muy bueno cuando lo utilicé (para trabajar con PostgreSQL), pero finalmente me decidí por dbExpress por las razones que expone Al...

A proposito para trabajar PostgreSQL con dbExpress recomiendo utilizar el driver de la pagina de DevArt...

En cuanto a "accesar", "acceder", "Pegarle a (una base)", etc, etc, creo que es irrelevante para el caso, como dicen por ahi " a buen entendedor pocas palabras" y cuando uno quiere ayudar, sencillamente ayuda... y ya..

saludos,


La franja horaria es GMT +2. Ahora son las 08:27: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