Работа с базами данных (БД)

// Connect to the database
// ... 

let sql = """
SELECT
  Language, Percentage
FROM countrylanguage
WHERE CountryCode = 'RUS'
ORDER BY Percentage DESC
"""

var pointer: OpaquePointer?
if sqlite3_prepare_v2(db, sql, -1, &pointer, nil) != SQLITE_OK {
    let err = String(cString: sqlite3_errmsg(db)!)
    print("SQL query execution error: \(err)")
}

// Get first row
sqlite3_step(pointer)
showRow(pointer)

// Get all rows
while sqlite3_step(pointer) == SQLITE_ROW {
    showRow(pointer)
}

sqlite3_finalize(pointer)

func showRow(_ pointer: OpaquePointer?) {
    let text = sqlite3_column_text(pointer, 0)
    let lang = String(cString: text!)
    let percent = sqlite3_column_double(pointer, 1)
    print("\(lang): \(percent)")
}