Database db;
List<string> genres;
+ public delegate void ReceiveMovieFunction (string title, int year, int rating);
+
public IMDbSqlite (string filename) {
int rc;
return 0;
}
+
+ public int query (string filter, ReceiveMovieFunction receive_movie) {
+ var sql = "SELECT Title, Year, Rating FROM Movies WHERE Title LIKE \"%s%%\" LIMIT 10;".printf (filter);
+ Statement stmt;
+ int rc;
+
+ rc = db.prepare_v2 (sql, -1, out stmt);
+ if (rc != Sqlite.OK) {
+ stderr.printf ("SQL error: %d, %s\n", rc, db.errmsg ());
+ return 1;
+ }
+
+ do {
+ rc = stmt.step ();
+ if (rc == Sqlite.ROW) {
+ string title = stmt.column_text (0);
+ int year = stmt.column_int (1);
+ int rating = stmt.column_int (2);
+ receive_movie (title, year, rating);
+ }
+ } while (rc == Sqlite.ROW);
+
+ return 0;
+ }
}