Pular para o conteúdo

Conexão e Ping

Nesta página

Toda interação com o banco começa em Database.open(url), que retorna um Result<Database, DbError>. Use .unwrap() para obter o handle (e falhar explicitamente em caso de erro), ou match / ? para tratar o erro com elegância. Em caso de falha, o DbError carrega um kind (DbErrorKind::ConnectionFailed, …::QueryFailed, …), um message e o nome do driver.

defer db.close() garante que a conexão seja liberada ao final do escopo, independentemente de erros.

Abre SQLite em memória, chama db.ping() para confirmar que a conexão está ativa e imprime o driver reconhecido.

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)

Requer a CLI/host do Zolo — abra no playground ou rode localmente.

Para Postgres ou MySQL basta trocar a URL:

Database.open("postgres://usuario:senha@host/banco")
Database.open("mysql://usuario:senha@host/banco")

Desafio

Tente passar uma URL inválida (ex.: "nope://invalid") e trate-a com match, imprimindo e.kind e e.message. Qual DbErrorKind você obtém?

Veja também

Buscar no Zolo

9 resultados

enespt-br