コード例 #1
0
ファイル: client.cpp プロジェクト: rschroll/bookmarks
FolderList get_bookmark_folders() {
    FolderList folders;

    sqlite3 *db;
    sqlite3_stmt *stmt;
    std::string sql = "SELECT folderId, folder FROM folders ORDER BY folder";

    if (!run_statement(sql, &db, &stmt))
        goto exit;

    {
        int res = sqlite3_step(stmt);
        while (res == SQLITE_ROW) {
            Folder f;
            f.id = sqlite3_column_string(stmt, 0, "-1");
            f.name = sqlite3_column_string(stmt, 1, "");
            folders.emplace_back(f);
            res = sqlite3_step(stmt);
        }
        if (res != SQLITE_DONE) {
            std::cerr << "Error reading rows: " << sqlite3_errmsg(db) << std::endl;
        }
    }

    exit:
    sqlite3_close(db);
    return folders;
}
コード例 #2
0
ファイル: client.cpp プロジェクト: rschroll/bookmarks
BookmarkList get_bookmarks(std::string query, std::string folder, int sort) {
    BookmarkList bookmarks;

    sqlite3 *db;
    sqlite3_stmt *stmt;
    std::string sql = "SELECT url, title, icon FROM bookmarks WHERE 1";
    if (query != "")
        sql += " AND (url LIKE '%' || ? || '%' OR title LIKE '%' || ?1 || '%')";
    if (folder != "")
        sql += " AND folderId = '" + folder + "'";
    if (sort == 0)
        sql += " ORDER BY length(title) > 0 DESC, title ASC";
    else
        sql += " ORDER BY created DESC";

    if (!run_statement(sql, &db, &stmt))
        goto exit;

    if (query != "") {
        if (sqlite3_bind_text(stmt, 1, query.data(), -1, SQLITE_STATIC)) {
            std::cerr << "Error binding text: " << sqlite3_errmsg(db) << std::endl;
            goto exit;
        }
    }

    {
        int res = sqlite3_step(stmt);
        while (res == SQLITE_ROW) {
            Bookmark b;
            b.url = sqlite3_column_string(stmt, 0, "");
            b.title = sqlite3_column_string(stmt, 1, b.url);
            b.icon = sqlite3_column_string(stmt, 2, "file:///usr/share/icons/suru/actions/scalable/stock_website.svg");
            bookmarks.emplace_back(b);
            res = sqlite3_step(stmt);
        }
        if (res != SQLITE_DONE) {
            std::cerr << "Error reading rows: " << sqlite3_errmsg(db) << std::endl;
        }
    }

    exit:
    sqlite3_close(db);
    return bookmarks;
}
コード例 #3
0
ファイル: pib-db.cpp プロジェクト: CSUL/ndn-tools
string
PibDb::getOwnerName() const
{
  sqlite3_stmt* statement;
  sqlite3_prepare_v2(m_database, "SELECT owner FROM mgmt", -1, &statement, nullptr);

  if (sqlite3_step(statement) == SQLITE_ROW) {
    m_owner = sqlite3_column_string(statement, 0);
  }

  sqlite3_finalize(statement);
  return m_owner;
}
コード例 #4
0
ファイル: pib-db.cpp プロジェクト: CSUL/ndn-tools
std::string
PibDb::getTpmLocator() const
{
  sqlite3_stmt* statement;
  sqlite3_prepare_v2(m_database, "SELECT tpm_locator FROM mgmt", -1, &statement, nullptr);

  string tpmLocator;
  if (sqlite3_step(statement) == SQLITE_ROW) {
    tpmLocator = sqlite3_column_string(statement, 0);
  }

  sqlite3_finalize(statement);
  return tpmLocator;
}