[rygel] db: Add .prepare function to prepare statements
- From: Jens Georg <jensgeorg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [rygel] db: Add .prepare function to prepare statements
- Date: Sun, 7 Feb 2016 16:25:16 +0000 (UTC)
commit 6a193ad8b8b17b409df7b29b1d0ce6fe337fb654
Author: Jens Georg <mail jensge org>
Date: Sun Feb 7 14:58:52 2016 +0100
db: Add .prepare function to prepare statements
Signed-off-by: Jens Georg <mail jensge org>
src/librygel-db/database.vala | 21 ++++++++++++++++++---
1 files changed, 18 insertions(+), 3 deletions(-)
---
diff --git a/src/librygel-db/database.vala b/src/librygel-db/database.vala
index 385b880..cc7bf18 100644
--- a/src/librygel-db/database.vala
+++ b/src/librygel-db/database.vala
@@ -26,7 +26,10 @@ namespace Rygel.Database {
public errordomain DatabaseError {
SQLITE_ERROR, /// Error code translated from SQLite
- OPEN /// Error while opening database file
+ OPEN, /// Error while opening database file
+ PREPARE, /// Error while preparing a statement
+ BIND, /// Error while binding values to a statement
+ STEP /// Error while running through a result set
}
public enum Flavor {
@@ -209,8 +212,8 @@ public class Rygel.Database.Database : Object, Initable {
* @throws DatabaseError if the underlying SQLite operation fails.
*/
public Cursor exec_cursor (string sql,
- GLib.Value[]? arguments = null)
- throws DatabaseError {
+ GLib.Value[]? arguments = null)
+ throws DatabaseError {
return new Cursor (this.db, sql, arguments);
}
@@ -290,4 +293,16 @@ public class Rygel.Database.Database : Object, Initable {
error.message);
}
}
+
+ public Statement prepare (string sql) throws DatabaseError {
+ Statement statement;
+
+ var err = this.db.prepare_v2 (sql, -1, out statement);
+ if (err != Sqlite.OK) {
+ var msg = "Unable to prepare statement '%s' : %s";
+ throw new DatabaseError.PREPARE (msg, sql, this.db.errmsg ());
+ }
+
+ return statement;
+ }
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]