En este módulo, aprenderemos cómo interactuar con bases de datos utilizando F#. Exploraremos cómo conectarnos a una base de datos, realizar consultas y manejar los resultados. Utilizaremos SQL y herramientas específicas de F# para facilitar estas tareas.

Contenido

Configuración del Entorno

Antes de comenzar, necesitamos asegurarnos de tener el entorno adecuado configurado para trabajar con bases de datos en F#.

Instalación de Paquetes Necesarios

Para interactuar con bases de datos, utilizaremos el paquete System.Data.SqlClient y FSharp.Data.SqlClient. Puedes instalarlos usando NuGet.

dotnet add package System.Data.SqlClient
dotnet add package FSharp.Data.SqlClient

Conexión a una Base de Datos

Para conectarnos a una base de datos, necesitamos una cadena de conexión que contenga la información necesaria para establecer la conexión.

Ejemplo de Cadena de Conexión

let connectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;"

Estableciendo la Conexión

Utilizaremos SqlConnection para establecer la conexión.

open System.Data.SqlClient

let connectToDatabase connectionString =
    use connection = new SqlConnection(connectionString)
    connection.Open()
    printfn "Conexión establecida con éxito"
    connection.Close()

Realización de Consultas

Una vez que tenemos la conexión establecida, podemos realizar consultas a la base de datos.

Consultas SELECT

Utilizaremos SqlCommand para ejecutar consultas SQL.

let executeQuery connectionString query =
    use connection = new SqlConnection(connectionString)
    connection.Open()
    use command = new SqlCommand(query, connection)
    use reader = command.ExecuteReader()
    while reader.Read() do
        printfn "Resultado: %s" (reader.GetString(0))
    connection.Close()

Ejemplo de Consulta

let query = "SELECT TOP 10 * FROM Employees"
executeQuery connectionString query

Manejo de Resultados

Es importante manejar los resultados de las consultas de manera adecuada. Utilizaremos SqlDataReader para leer los datos.

Lectura de Datos

let readData connectionString query =
    use connection = new SqlConnection(connectionString)
    connection.Open()
    use command = new SqlCommand(query, connection)
    use reader = command.ExecuteReader()
    let results = 
        [ while reader.Read() do
            yield reader.GetString(0) ]
    connection.Close()
    results

Ejemplo de Lectura de Datos

let query = "SELECT Name FROM Employees"
let results = readData connectionString query
results |> List.iter (printfn "Empleado: %s")

Ejercicio Práctico

Ejercicio

  1. Conéctate a una base de datos de ejemplo.
  2. Realiza una consulta para obtener los nombres de todos los empleados.
  3. Imprime los resultados en la consola.

Solución

let connectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;"
let query = "SELECT Name FROM Employees"

let readData connectionString query =
    use connection = new SqlConnection(connectionString)
    connection.Open()
    use command = new SqlCommand(query, connection)
    use reader = command.ExecuteReader()
    let results = 
        [ while reader.Read() do
            yield reader.GetString(0) ]
    connection.Close()
    results

let results = readData connectionString query
results |> List.iter (printfn "Empleado: %s")

Conclusión

En esta sección, hemos aprendido cómo interactuar con bases de datos en F#. Hemos cubierto la configuración del entorno, la conexión a una base de datos, la realización de consultas y el manejo de resultados. Estos conocimientos son fundamentales para cualquier aplicación que necesite interactuar con bases de datos.

En el próximo módulo, exploraremos cómo trabajar con JSON en F#.

Curso de Programación en F#

Módulo 1: Introducción a F#

Módulo 2: Conceptos Básicos

Módulo 3: Programación Funcional

Módulo 4: Estructuras de Datos Avanzadas

Módulo 5: Programación Orientada a Objetos en F#

Módulo 6: Programación Asíncrona y Paralela

Módulo 7: Acceso y Manipulación de Datos

Módulo 8: Pruebas y Depuración

Módulo 9: Temas Avanzados

Módulo 10: Aplicaciones Prácticas

© Copyright 2024. Todos los derechos reservados