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 Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-09-2005
adlfv adlfv is offline
Miembro
 
Registrado: may 2005
Posts: 39
Poder: 0
adlfv Va por buen camino
BDE, ODBC, ADO, IBX, Comp. nativos. Cual?

Hola a todos.

Me encuentro en un dilema...

Estoy haciendo un programa grande, y me plantee desde el comienzo utilizar MySQL, pero he tenido bastantes problemas con *el acceso* a la base de datos.

En un principio utilicé MySQLDac, para probar a ver que tal era, y además que era una versión antigua, no era compatible con D2005... Tuve que retocar la librería, y me dió todos los dolores de cabeza que puedan imaginar...

Después cambié y pensé en usar ODBC, pero como que Delphi no se lleva muy bien con los driver de ODBC de MySQL, pues me daba problemas porque Delphi "se confundía" con los campos, por ejemplo, un campo de tipo VARCHAR NULL lo tomaba como Memo, y uno VARCHAR NOT NULL como string, y cosas así...

Luego pensé en usar ADO mediante ODBC, y 3/4 de lo mismo...

Luego probé un driver de SciBit (creo recordar) y funcionó aparentemente bien, pero era de pago y caducaba a los 30 días .

Luego me pasé a zeos, y funciona más o menos bien, pero tengo un problema con la propiedad AutoCommit... No sé por qué pero pareciera que estos componentes no permiten manipular transacciones de forma explicita (o no en MySQL)...

Hace poco me salió el tema de IBX, y creo que las probé también, pero la verdad es que ya ni me acuerdo... con tantos cambios...

Me gustaría saber cuales creen que son los mejores componentes para trabajar con bases de datos, y por qué...

Otra cosa, leí que IBX no es compatible con linux, pues por lo visto es sólo para windows. Es verdad?

Puedo manipular transacciones, procedimientos almacenados, triggers y todo ese tipo de cosas con IBX, ADO y ODBC? Y cosas ya especificas de la base de datos, como por ejemplo soporte SSL, compresión y cosas así?

Muchas gracias de antemano.

Un cordial saludo a todos...
Responder Con Cita
  #2  
Antiguo 06-09-2005
Avatar de jmariano
jmariano jmariano is offline
Miembro
 
Registrado: jul 2005
Posts: 376
Poder: 19
jmariano Va por buen camino
¿Has probado con dbExpress? Yo hace tiempo hice algunas pruebas con MySQL atacándola con DBX y no recuerdo haber tenido problemas. Después probé con FireBird (de hecho, es lo que uso ahora) y, de momento, no me ha ido mal.

Lo que sí hay que tener en cuenta es que, al establecer la comunicación por "capas", trabajará un poco mas "lento" que si atacas la base de datos con componentes de acceso directo, pero ganarás en portabilidad al no tener que cambiar, en teoría, ni una sola línea de código si más adelante cambias de base de datos (a parte, dbExpress es compatible con Linux).

Aquí te dejo una dirección donde puedes conseguir los drivers necesarios para DBX y MySQL: http://www.microolap.com/products/co...vity/dbx4mysql

Saludos!
Responder Con Cita
  #3  
Antiguo 06-09-2005
Avatar de lpmlpm
lpmlpm lpmlpm is offline
Miembro
 
Registrado: ago 2005
Posts: 136
Poder: 19
lpmlpm Va por buen camino
Lo mejor que hay para comunicarte de manera nativa con Firebird es sin duda alguna IBObjects (basta con decir que la autora del libro de Firebird, y la principal precursora de este motor de Base de Datos Hellen Borrie trabaja en el desarrollo de estos componentes, por lo que puedes estar seguro que aprovechas al máximo todas las características del fantástico Firebird)... la suite completa trae un monton de cosas, pero para trabajar con lo básico solo necesitas el Core compatible con TDataset y eso es mas que suficiente para gozar de todos los beneficios que ofrece...

Saludos
__________________
"Lo mejor de no saber hacer nada es que se tiene mucho tiempo libre."
Responder Con Cita
  #4  
Antiguo 06-09-2005
adlfv adlfv is offline
Miembro
 
Registrado: may 2005
Posts: 39
Poder: 0
adlfv Va por buen camino
Hola.

Ups... Sí me equivoqué... Cuando dije IBX, quería decir DBX...

DBX es compatible con linux? Existen otros drivers para otras bases de datos? Por ejemplo, si mañana cambio a Oracle (por decir algo) o a una poco conocida, será problemático conseguir dichos drivers?

Otra cosa, puedo hacer un cambio de base de datos sin tener que tocar código? La teoría dice que sí, pero y la práctica? Puedo trabajar con procedimientos almacenados y triggers, y ese tipo de cosas un poco más complejas, hay que tocar código si cambio de BD?

Muchas gracias de antemano.

Un cordial saludo.
Responder Con Cita
  #5  
Antiguo 06-09-2005
adlfv adlfv is offline
Miembro
 
Registrado: may 2005
Posts: 39
Poder: 0
adlfv Va por buen camino
Jejeje, estaba contestando a jmariano cuando tú me contestabas a mí.

Pero IBObjects sólo funciona con InterBase y Firebird, no? Es de pago?

Muchas gracias por su ayuda.

Un cordial saludo...
Responder Con Cita
  #6  
Antiguo 06-09-2005
Avatar de lpmlpm
lpmlpm lpmlpm is offline
Miembro
 
Registrado: ago 2005
Posts: 136
Poder: 19
lpmlpm Va por buen camino
Cita:
Empezado por adlfv
Pero IBObjects sólo funciona con InterBase y Firebird, no? Es de pago?
Asi es... solo es para trabajar con Firebird/Interbase... funciona indistintamente si te conectas a un servidor en Windows que en Linux...

Y si son de pago, pero estan bajo una licencia que se le denomina "Trustware"... que a grandes rasgos quiere decir que no tienes que pagar nada hasta que tu no hagas dinero con la venta de tu software... una licencia bastante conveniente... para un software bastante conveniente...

Saludos
__________________
"Lo mejor de no saber hacer nada es que se tiene mucho tiempo libre."
Responder Con Cita
  #7  
Antiguo 06-09-2005
Avatar de jmariano
jmariano jmariano is offline
Miembro
 
Registrado: jul 2005
Posts: 376
Poder: 19
jmariano Va por buen camino
Cita:
Empezado por adlfv
Hola.

Ups... Sí me equivoqué... Cuando dije IBX, quería decir DBX...

DBX es compatible con linux? Existen otros drivers para otras bases de datos? Por ejemplo, si mañana cambio a Oracle (por decir algo) o a una poco conocida, será problemático conseguir dichos drivers?

Otra cosa, puedo hacer un cambio de base de datos sin tener que tocar código? La teoría dice que sí, pero y la práctica? Puedo trabajar con procedimientos almacenados y triggers, y ese tipo de cosas un poco más complejas, hay que tocar código si cambio de BD?

Muchas gracias de antemano.

Un cordial saludo.
Como ya te comenté, sí, DBX es compatible con Linux. Y sí, existen otros drivers para otras bases de datos, visita la siguiente página: http://crlab.com/dbx/download.html, y verás que contiene drivers para: Oracle, MS SQL Server y MySQL. (Y si quieres conseguir el driver para FireBird, visita: http://www.upscene.com).

(Como verás, existen diferentes drivers para las bases de datos, todo es cuestión de localizarlos)

A la última pregunta, comentarte que DBX establece una comunicación "universal" hacia la base de datos (en verdad, me recuerda mucho al ADO). Esto quiere decir, mirándolo a mas bajo nivel, que DBX proporciona un API con una serie de funciones que nos permiten acceder a todos los recursos de una base de datos (tablas, vistas, procedimientos almacenados, etc.), el cual, es implementado luego por los diferentes drivers de base de datos. Para que lo veas mas claro, imaginando que la función "OpenDabatase" sirva para abrir una base de datos, ya sabemos que, independientemente de la base de datos que utlicemos, siempre será esta función la que se llamará a la hora de abrir dicha base de datos (internamente, cada driver implementará de forma distinta "OpenDatabase", pero la declaración de la función es siempre la misma), es por eso que no necesitamos cambiar nada de código al cambiar de base de datos.

Espero haberlo explicado bien!

Saludos!
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 18:13:03.


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