aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeddy Wing2022-03-08 21:55:55 +0100
committerTeddy Wing2022-03-08 22:00:18 +0100
commitfa544f9b540d362f74f8a020f4f772dffb24dd74 (patch)
tree34fb3d395d05d7f410d6aef3b62bb0ea7193812c
parent528dcd76c0f22a5363e2d6cd07d963503ec1f923 (diff)
downloadyaqlite-fa544f9b540d362f74f8a020f4f772dffb24dd74.tar.bz2
Get column names from SQLite table
Eliminated the transaction because of a borrow problem.
-rw-r--r--src/main.rs36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs
index f0c11a2..ce18f49 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -6,6 +6,11 @@ fn main() {
// Get column names from SQLite
+ let mut dbconn = rusqlite::Connection::open("./test.db").unwrap();
+
+ let table_columns = get_column_names(&mut dbconn);
+ dbg!(table_columns);
+
let text_data = std::fs::read_to_string("test.yml").unwrap();
let yaml_data = yaml::YamlLoader::load_from_str(&text_data).unwrap();
@@ -15,6 +20,8 @@ fn main() {
}
dbg!(yaml_data);
+
+ dbconn.close().unwrap();
}
fn yaml_extract(doc: &yaml::Yaml) {
@@ -38,3 +45,32 @@ fn yaml_extract(doc: &yaml::Yaml) {
_ => {}
}
}
+
+fn get_column_names(dbconn: &mut rusqlite::Connection) -> Vec<String> {
+ let mut column_names = Vec::new();
+
+ // let tx = dbconn.transaction().unwrap();
+
+ // let mut stmt = tx.prepare(r#"
+ // SELECT "name"
+ // FROM pragma_table_info("test");
+ // "#).unwrap();
+
+ let mut stmt = dbconn.prepare(r#"
+ SELECT "name"
+ FROM pragma_table_info("test");
+ "#).unwrap();
+
+ let rows = stmt.query_map(
+ [],
+ |row| row.get(0),
+ ).unwrap();
+
+ for row in rows {
+ column_names.push(row.unwrap());
+ }
+
+ // tx.commit().unwrap();
+
+ column_names
+}