Saltar al contenido

Conexión y Ping

En esta página

Toda interacción con la base de datos comienza con Database.open(url), que devuelve un Result<Database, DbError>. Usa .unwrap() para obtener el handle (y fallar de forma explícita ante un error), o match / ? para gestionar el error con elegancia. En caso de fallo, el DbError lleva un kind (DbErrorKind::ConnectionFailed, …::QueryFailed, …), un message y el nombre del driver.

defer db.close() garantiza que la conexión se libere al final del ámbito, independientemente de errores.

Abre SQLite en memoria, llama a db.ping() para confirmar que la conexión está activa e imprime el driver reconocido.

01-connect-and-ping.zolo
Playground
// Feature: Database — open a connection and ping

// Syntax: `Database.open("sqlite://:memory:").unwrap()` returns a handle.

// When to use: smoke test before using the connection; CI healthcheck.


use std::database::Database

let db = Database.open("sqlite://:memory:").unwrap()
defer db.close()

let ok = db.ping().unwrap()
print("ping: {ok}")

// expected: ping: true


print("driver: {db}")
// expected: driver: Database(sqlite)

Requiere la CLI o el host de Zolo; ábrelo en el playground o ejecútalo localmente.

Para Postgres o MySQL basta cambiar la URL:

Database.open("postgres://usuario:contraseña@host/base")
Database.open("mysql://usuario:contraseña@host/base")

Desafío

Intenta pasar una URL inválida (p. ej. "nope://invalid") y trátala con match, imprimiendo e.kind y e.message. ¿Qué DbErrorKind obtienes?

Consulta también

Buscar en Zolo

9 resultados

enespt-br