En este módulo, aprenderás cómo interactuar con bases de datos utilizando Delphi/Object Pascal. Este es un aspecto crucial del desarrollo de aplicaciones, ya que la mayoría de las aplicaciones modernas requieren algún tipo de almacenamiento persistente de datos. Vamos a cubrir los conceptos básicos de acceso a bases de datos, cómo configurar conexiones, ejecutar consultas y manejar los resultados.
Contenido
- Introducción al Acceso a Bases de Datos
- Configuración de la Conexión a la Base de Datos
- Ejecución de Consultas SQL
- Manejo de Resultados de Consultas
- Ejemplo Práctico
- Ejercicios Prácticos
- Introducción al Acceso a Bases de Datos
El acceso a bases de datos en Delphi se realiza principalmente a través de componentes de acceso a datos que permiten conectarse a diferentes tipos de bases de datos (SQL Server, MySQL, SQLite, etc.). Los componentes más comunes son:
- TADOConnection: Para conexiones ADO.
- TSQLConnection: Para conexiones dbExpress.
- TFDConnection: Para conexiones FireDAC.
- Configuración de la Conexión a la Base de Datos
Paso 1: Añadir el Componente de Conexión
- Abre tu proyecto en Delphi.
- En la paleta de componentes, selecciona el componente de conexión adecuado (por ejemplo,
TFDConnection
para FireDAC). - Arrastra y suelta el componente en tu formulario.
Paso 2: Configurar las Propiedades de Conexión
Configura las propiedades del componente de conexión para que apunten a tu base de datos. Aquí hay un ejemplo de configuración para una base de datos SQLite usando TFDConnection
:
FDConnection1.DriverName := 'SQLite'; FDConnection1.Params.Database := 'C:\path\to\your\database.db'; FDConnection1.LoginPrompt := False;
Paso 3: Establecer la Conexión
Para establecer la conexión, simplemente llamamos al método Open
del componente de conexión:
- Ejecución de Consultas SQL
Para ejecutar consultas SQL, utilizamos componentes como TADOQuery
, TSQLQuery
o TFDQuery
. Aquí hay un ejemplo usando TFDQuery
:
Paso 1: Añadir el Componente de Consulta
- En la paleta de componentes, selecciona
TFDQuery
. - Arrastra y suelta el componente en tu formulario.
Paso 2: Configurar la Consulta
Configura las propiedades del componente de consulta para que utilice la conexión configurada anteriormente y define la consulta SQL:
Paso 3: Ejecutar la Consulta
Para ejecutar la consulta y obtener los resultados, llamamos al método Open
:
- Manejo de Resultados de Consultas
Una vez que la consulta se ha ejecutado, podemos acceder a los resultados a través del componente de consulta. Aquí hay un ejemplo de cómo iterar sobre los resultados:
while not FDQuery1.Eof do begin ShowMessage(FDQuery1.FieldByName('EmployeeName').AsString); FDQuery1.Next; end;
- Ejemplo Práctico
Vamos a crear una aplicación simple que se conecte a una base de datos SQLite, ejecute una consulta y muestre los resultados en un TStringGrid
.
Paso 1: Configurar el Formulario
- Añade un
TFDConnection
y configúralo como se describió anteriormente. - Añade un
TFDQuery
y configúralo para usar la conexión. - Añade un
TStringGrid
al formulario. - Añade un botón para ejecutar la consulta.
Paso 2: Código del Botón
procedure TForm1.Button1Click(Sender: TObject); var i: Integer; begin FDQuery1.SQL.Text := 'SELECT * FROM Employees'; FDQuery1.Open; // Configurar el StringGrid StringGrid1.RowCount := FDQuery1.RecordCount + 1; StringGrid1.ColCount := FDQuery1.FieldCount; // Añadir encabezados for i := 0 to FDQuery1.FieldCount - 1 do StringGrid1.Cells[i, 0] := FDQuery1.Fields[i].FieldName; // Añadir datos i := 1; while not FDQuery1.Eof do begin for var j := 0 to FDQuery1.FieldCount - 1 do StringGrid1.Cells[j, i] := FDQuery1.Fields[j].AsString; Inc(i); FDQuery1.Next; end; end;
- Ejercicios Prácticos
Ejercicio 1: Conectar a una Base de Datos
- Configura una conexión a una base de datos MySQL.
- Ejecuta una consulta que seleccione todos los registros de una tabla llamada
Products
.
Ejercicio 2: Mostrar Resultados en un ListBox
- Configura una conexión a una base de datos SQLite.
- Ejecuta una consulta que seleccione todos los registros de una tabla llamada
Customers
. - Muestra los nombres de los clientes en un
TListBox
.
Soluciones
Ejercicio 1
FDConnection1.DriverName := 'MySQL'; FDConnection1.Params.Database := 'your_database'; FDConnection1.Params.UserName := 'your_username'; FDConnection1.Params.Password := 'your_password'; FDConnection1.LoginPrompt := False; FDConnection1.Open; FDQuery1.Connection := FDConnection1; FDQuery1.SQL.Text := 'SELECT * FROM Products'; FDQuery1.Open;
Ejercicio 2
FDConnection1.DriverName := 'SQLite'; FDConnection1.Params.Database := 'C:\path\to\your\database.db'; FDConnection1.LoginPrompt := False; FDConnection1.Open; FDQuery1.Connection := FDConnection1; FDQuery1.SQL.Text := 'SELECT * FROM Customers'; FDQuery1.Open; ListBox1.Items.Clear; while not FDQuery1.Eof do begin ListBox1.Items.Add(FDQuery1.FieldByName('CustomerName').AsString); FDQuery1.Next; end;
Conclusión
En esta sección, hemos aprendido cómo configurar una conexión a una base de datos, ejecutar consultas SQL y manejar los resultados en Delphi. Estos son los fundamentos esenciales para trabajar con bases de datos en tus aplicaciones. En el próximo módulo, profundizaremos en la Programación Orientada a Objetos en Delphi.
Curso de Programación en Delphi/Object Pascal
Módulo 1: Introducción a Delphi/Object Pascal
- Introducción a Delphi y Object Pascal
- Configuración del Entorno de Desarrollo
- Primera Aplicación en Delphi
- Sintaxis y Estructura Básica
- Variables y Tipos de Datos
Módulo 2: Estructuras de Control y Procedimientos
- Sentencias Condicionales
- Bucles e Iteración
- Procedimientos y Funciones
- Ámbito y Ciclo de Vida de las Variables
- Manejo de Errores y Depuración
Módulo 3: Trabajando con Datos
- Arreglos y Cadenas
- Registros y Conjuntos
- Tipos Enumerados y Subrangos
- Manejo de Archivos
- Acceso a Bases de Datos
Módulo 4: Programación Orientada a Objetos
- Introducción a la POO
- Clases y Objetos
- Herencia y Polimorfismo
- Interfaces y Clases Abstractas
- Manejo de Excepciones en POO
Módulo 5: Características Avanzadas de Delphi
- Genéricos y Colecciones
- Multihilo y Programación Paralela
- Desarrollo Basado en Componentes
- Biblioteca de Tiempo de Ejecución de Delphi (RTL)
- Técnicas Avanzadas de Depuración
Módulo 6: Desarrollo de GUI con VCL y FMX
- Introducción a VCL
- Creación de Formularios y Controles
- Programación Orientada a Eventos
- Introducción a FireMonkey (FMX)
- Desarrollo Multiplataforma con FMX
Módulo 7: Desarrollo Web y Móvil
- Desarrollo Web con Delphi
- Servicios RESTful
- Desarrollo Móvil con Delphi
- Despliegue de Aplicaciones Móviles
- Integración con Servicios Web
Módulo 8: Mejores Prácticas y Patrones de Diseño
- Organización del Código y Documentación
- Patrones de Diseño en Delphi
- Técnicas de Refactorización
- Pruebas Unitarias y Desarrollo Basado en Pruebas
- Optimización del Rendimiento