diff options
| author | Teddy Wing | 2022-03-08 21:55:55 +0100 | 
|---|---|---|
| committer | Teddy Wing | 2022-03-08 22:00:18 +0100 | 
| commit | fa544f9b540d362f74f8a020f4f772dffb24dd74 (patch) | |
| tree | 34fb3d395d05d7f410d6aef3b62bb0ea7193812c /src | |
| parent | 528dcd76c0f22a5363e2d6cd07d963503ec1f923 (diff) | |
| download | yaqlite-fa544f9b540d362f74f8a020f4f772dffb24dd74.tar.bz2 | |
Get column names from SQLite table
Eliminated the transaction because of a borrow problem.
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.rs | 36 | 
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 +} | 
