I need to do the following tasks for me project using Sqlite3 existing dbs (files):
connect to each of the Sqlite db/files in the repository
list all the tables in the db.
select (filter) some tables of interest
for selected tables execute one query to extract some data (a very simple query such as SELECT items FROM table WHERE condition)
return a map with all the collected results
So far, I managed (with difficulties) to install and configure Exqlite into the project.
I tried to follow the documentation Readme — Exqlite v0.7.9 and did:
{:ok, conn} = Exqlite.Sqlite3.open("path_to_one_db")
:ok = Exqlite.Sqlite3.execute(conn, "SELECT name FROM sqlite_master WHERE "type"='table'");
…and I got stuck. I don’t know how to use this library further on. The documentation is not very clear. There are no examples/tutorial online.
Next step is to get the list with the tables in the db.
Thanks for your help,
T.
PS: As you might have noted, I am quite new to Elixir.
Looks like executing a query needs a prepare, possibly a bind, and then a loop that repeatedly calls step until it returns :done (or fetch_all).
One comment - the API exposed by Exqlite.Sqlite3 is the lowest-level, closest to the underlying native code that calls into SQLite3. You may find it easier to use a library like db_connection that exposes higher-level functionality.
Thanks but that README is not so decent for me. Very “cryptic”. It does not work when I replicate it in my case. Some sort of tutorial would be fine, step by step, with real-world examples. Similar to this: SQLite PHP in php.
In general, I find that all of hexdocs are not very helpful for beginners like me, coming from the OOP world.