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

  1. Introducción al Acceso a Bases de Datos
  2. Configuración de la Conexión a la Base de Datos
  3. Ejecución de Consultas SQL
  4. Manejo de Resultados de Consultas
  5. Ejemplo Práctico
  6. Ejercicios Prácticos

  1. 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.

  1. Configuración de la Conexión a la Base de Datos

Paso 1: Añadir el Componente de Conexión

  1. Abre tu proyecto en Delphi.
  2. En la paleta de componentes, selecciona el componente de conexión adecuado (por ejemplo, TFDConnection para FireDAC).
  3. 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:

FDConnection1.Open;

  1. 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

  1. En la paleta de componentes, selecciona TFDQuery.
  2. 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:

FDQuery1.Connection := FDConnection1;
FDQuery1.SQL.Text := 'SELECT * FROM Employees';

Paso 3: Ejecutar la Consulta

Para ejecutar la consulta y obtener los resultados, llamamos al método Open:

FDQuery1.Open;

  1. 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;

  1. 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

  1. Añade un TFDConnection y configúralo como se describió anteriormente.
  2. Añade un TFDQuery y configúralo para usar la conexión.
  3. Añade un TStringGrid al formulario.
  4. 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;

  1. Ejercicios Prácticos

Ejercicio 1: Conectar a una Base de Datos

  1. Configura una conexión a una base de datos MySQL.
  2. Ejecuta una consulta que seleccione todos los registros de una tabla llamada Products.

Ejercicio 2: Mostrar Resultados en un ListBox

  1. Configura una conexión a una base de datos SQLite.
  2. Ejecuta una consulta que seleccione todos los registros de una tabla llamada Customers.
  3. 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

Módulo 2: Estructuras de Control y Procedimientos

Módulo 3: Trabajando con Datos

Módulo 4: Programación Orientada a Objetos

Módulo 5: Características Avanzadas de Delphi

Módulo 6: Desarrollo de GUI con VCL y FMX

Módulo 7: Desarrollo Web y Móvil

Módulo 8: Mejores Prácticas y Patrones de Diseño

Módulo 9: Proyecto Final

© Copyright 2024. Todos los derechos reservados