gboolean ephy_sqlite_connection_execute (EphySQLiteConnection *self, const char *sql, GError **error) { if (self->database == NULL) { set_error_from_string ("Connection not open.", error); return FALSE; } return sqlite3_exec (self->database, sql, NULL, NULL, NULL) == SQLITE_OK; }
gboolean ephy_sqlite_connection_open (EphySQLiteConnection *self, const gchar *filename, GError **error) { if (self->database) { set_error_from_string ("Connection already open.", error); return FALSE; } if (sqlite3_open (filename, &self->database) != SQLITE_OK) { ephy_sqlite_connection_get_error (self, error); self->database = NULL; return FALSE; } return TRUE; }
EphySQLiteStatement * ephy_sqlite_connection_create_statement (EphySQLiteConnection *self, const char *sql, GError **error) { sqlite3_stmt *prepared_statement; if (self->database == NULL) { set_error_from_string ("Connection not open.", error); return NULL; } if (sqlite3_prepare_v2 (self->database, sql, -1, &prepared_statement, NULL) != SQLITE_OK) { ephy_sqlite_connection_get_error (self, error); return NULL; } return EPHY_SQLITE_STATEMENT (g_object_new (EPHY_TYPE_SQLITE_STATEMENT, "prepared-statement", prepared_statement, "connection", self, NULL)); }
gboolean ephy_sqlite_connection_open (EphySQLiteConnection *self, GError **error) { if (self->database) { set_error_from_string ("Connection already open.", error); return FALSE; } if (sqlite3_open_v2 (self->database_path, &self->database, self->mode == EPHY_SQLITE_CONNECTION_MODE_READ_ONLY ? SQLITE_OPEN_READONLY : SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL) != SQLITE_OK) { ephy_sqlite_connection_get_error (self, error); self->database = NULL; return FALSE; } return TRUE; }