Delphi – Conectarse a MariaDb usando ADO

Debido a que MariaDb posee las mismas órdenes, interfaces, APIs y bibliotecas de MySQL, es posible usar el controlador ODBC de MySQL para conectarse a MariaDb usando ADO. Tal y como lo hicimos en el artículo: Ejecutar Stored procedures de MySQL con Delphi y ADO.

Entonces, si no tenemos instalado el controlador MyOdbc deberemos proceder a su instalación. Para ello será necesario descargar del sitio de MySQL el driver ODBC de  Mysql Downloads Odbc: mysql-connector-odbc-5.2.5-win32.msi

Una vez que hayamos descargado el driver ODBC procederemos a instalarlo. Para ello el procedimiento a seguir es muy simple. Ejecutamos el instalador y la pantalla de bienvenida nos dirá lo que estamos por instalar, presionamos siguiente y al llegar a la pantalla dónde nos pregunta el tipo de instalación dejaremos seleccionado “Typical” después presionaremos siguiente hasta finalizar el asistente y así la instalación del controlador.

Como podemos ver en las siguientes imágenes el proceso de instalación del controlador ODBC es un procedimiento muy sencillo.

       

 

Ya instalado nuestro driver ODBC, el siguiente paso es crear un Dsn para ello abriremos el administrador de orígenes de datos que se encuentra en “Panel de control / Herramientas administrativas / Orígenes de datos ODBC (32 bits)” Al abrirlo se nos presentan múltiples pestañas de las cuales elegiremos  Dsn de sistema, y eso lo haremos para permitir que nuestro DSN pueda ser usado por cualquier usuario registrado en Windows.

En esta pestaña del administrador de orígenes es dónde podremos configurar los datos necesarios para que nuestras aplicaciones puedan conectarse al Servidor MariaDb. Daremos Click  en “Agregar” para comenzar con el proceso de configuración.

Al iniciar el proceso de configuración el asistente nos muestra una lista de controladores. De la lista seleccionaremos MySQL ODBC 5.2 Driver y presionaremos “Finalizar” para dirigirnos a la pantalla de configuración.

En esta pantalla vamos a configurar la conexión a nuestro servidor MySQL proporcionando la siguiente información:

  • DataSourceName: “mariadb”. Nombre descriptivo de nuestro origen de datos
  • Description: “Servidor MySQL Local”. Descripción de nuestro origen de datos}
  • Tcp/Ip Server: “192.168.1.65”. Aquí es válido colocar una dirección ip o el nombre del servidor donde está instalado el servidor de base de datos MySQL. En caso de ser un servidor local podemos colocar Localhost. Si deseas conocer la IP de tu servidor puedes ejecutar el comando IpConfig en la consola de comandos y podrás obtener la dirección IP del servidor.
  • User: “root”. Usaremos el usuario administrador en este artículo.
  • Password: “********”. Aquí deberás colocar el Password de tu usuario.
  • Database: “pruebas”. Base de datos por default a la que nos conectaremos. Este campo puedes dejarlo en blanco si así lo deseas.

mariadb-odbcUna vez que hemos establecido los datos de conexión a nuestro servidor presionaremos “OK” y nuestro nuevo origen de datos aparecerá en el listado de la pestaña “Dsn de sistema”

 Una vez creado nuestro ODBC, es posible conectarnos desde Delphi a MariaDb usando ADO. Así que vamos a ejecutar Delphi, crearemos un nuevo proyecto VCL win forms application y colocaremos los siguientes componentes con las siguientes propiedades:

 

AdoConnection1
Propiedad Valor
Loginprompt False
ConnectionString Provider=MSDASQL.1;Persist Security Info=False;Data Source=mariadb
TAdoTable
Connection AdoConnection1
Name AdoTable1
TableName country
Active true
DataSource1
DataSet AdoTable1
DbGrid1
DataSource DataSource1

Configurados nuestros componentes tendremos en nuestra aplicación lo siguiente:

 

mariadb-sakila-country

Como puede notarse, conectar nuestras aplicaciones desarrolladas en Delphi a MariaDb puede ser tan sencillo como lo hacemos a MySQL.

2 Comments

  1. Pregunta:

    De esta forma diferentes usuarios pueden usar la misma base de datos al mismo tiempo? me refiero a capturar (modulos alta,baja.actualizacion) asi como hacer consultas?

    Gracias!! ..

    • Hola amigo,

      Es posible hacerlo, pues las aperturas de tabla no generan bloqueos. Pero yo te recomendaría que en lugar de abrir tablas o ejecutar consultas, mejor optaras por usar procedimientos almacenados.

      Saludos

Deja un comentario