From 523f59463b028e77b532a7652c5df9f6104d56aa Mon Sep 17 00:00:00 2001 From: robviren Date: Thu, 16 Dec 2021 21:56:45 -0600 Subject: [PATCH] Added Query --- src/main.rs | 7 +++++++ src/query/mod.rs | 27 +++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 src/query/mod.rs diff --git a/src/main.rs b/src/main.rs index 158ed9c..7e92721 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,6 +2,7 @@ use std::error::Error; mod converter; mod types; +mod query; use clap::{App, Arg, SubCommand}; @@ -45,6 +46,12 @@ fn main() -> Result<(), Box> { //Get Top match matches.values_of("get-top") { Some(vals) => { + let data: Vec<&str> = vals.collect(); + let year = data[0].parse::()?; + let month = data[1].parse::()?; + + let q = query::Query::new()?; + q.get_top(year, month)?; did_run = true; }, None => {} diff --git a/src/query/mod.rs b/src/query/mod.rs new file mode 100644 index 0000000..9e45b5c --- /dev/null +++ b/src/query/mod.rs @@ -0,0 +1,27 @@ +use rusqlite::{Connection, Result}; +use std::error::Error; + +pub struct Query{ + conn: Connection, +} + +impl Query{ + pub fn new() -> Result> { + let conn = Connection::open("data.db")?; + Ok(Query{ + conn: conn + }) + } + pub fn get_top(&self, year: i32, month: i32) -> Result<(),Box> { + let mut stmt = self.conn.prepare("SELECT * FROM data limit 10;")?; + let get_itr = stmt.query_map([], |row| { + let res: i32 = row.get(0)?; + Ok(res) + })?; + + for elm in get_itr { + dbg!(elm)?; + } + Ok(()) + } +}