From 0c80aaf2fc67b82b0d6ec60bd9317d7b4cf7e9ac Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Mon, 14 Mar 2022 21:14:35 +0100 Subject: Idea for selecting a record from the database as YAML --- src/lib.rs | 4 ++++ src/select.rs | 30 ++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 src/select.rs (limited to 'src') diff --git a/src/lib.rs b/src/lib.rs index a532b36..3f6151e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,7 +1,11 @@ +pub mod select; pub mod sqlite; pub mod yaml; +pub use select::select; + + #[derive(thiserror::Error, Debug)] pub enum Error { #[error("SQL error: {0}")] diff --git a/src/select.rs b/src/select.rs new file mode 100644 index 0000000..aa9389f --- /dev/null +++ b/src/select.rs @@ -0,0 +1,30 @@ +pub fn select( + dbconn: &rusqlite::Connection, + table_name: &str, + record_id: &str, +) -> yaml_rust::Yaml { + let mut stmt = dbconn.prepare(r#" + SELECT + x + FROM :table + WHERE :pk_column = :pk; + "#).unwrap(); + + let rows = stmt.query_map( + &[ + (":table", table_name), + (":pk_column", "id"), + (":pk", record_id), + ], + |row| { + Ok(()) + }, + ).unwrap(); + + // sqlite3 -header test.db ' + // SELECT "name" + // FROM pragma_table_info("test") + // WHERE "pk" != 0;' + + todo!(); +} -- cgit v1.2.3