Skip to content

Commit 4100b06

Browse files
committed
DatabaseCursor DocC
1 parent c50cfd9 commit 4100b06

File tree

1 file changed

+35
-25
lines changed

1 file changed

+35
-25
lines changed

GRDB/Core/Statement.swift

Lines changed: 35 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -507,37 +507,47 @@ extension Statement {
507507

508508
/// A cursor that lazily iterates the results of a prepared ``Statement``.
509509
///
510-
/// To get a `DatabaseCursor` instance, use a fetching method of
511-
/// ``Row``, ``DatabaseValueConvertible``, ``FetchableRecord``,
512-
/// or ``FetchRequest``. For example:
510+
/// ## Overview
513511
///
514-
/// ```swift
515-
/// try dbQueue.read { db in
516-
/// // A cursor of database rows,
517-
/// // built from a prepared statement
518-
/// let statement = try db.makeStatement(sql: "SELECT * FROM player")
519-
/// let rows = try Row.fetchCursor(statement)
520-
/// while let row = try rows.next() {
521-
/// let id: Int64 = row["id"]
522-
/// let name: String = row["name"]
512+
/// To get a `DatabaseCursor` instance, use one of the `fetchCursor` methods.
513+
/// For example:
514+
///
515+
/// - A cursor of ``Row`` built from a prepared ``Statement``:
516+
///
517+
/// ```swift
518+
/// try dbQueue.read { db in
519+
/// let statement = try db.makeStatement(sql: "SELECT * FROM player")
520+
/// let rows = try Row.fetchCursor(statement)
521+
/// while let row = try rows.next() {
522+
/// let id: Int64 = row["id"]
523+
/// let name: String = row["name"]
524+
/// }
523525
/// }
526+
/// ```
524527
///
525-
/// // A cursor of values,
526-
/// // built from an SQL string
527-
/// let scores = try Int.fetchCursor(db, sql: "SELECT score FROM player")
528-
/// while let score = try scores.next() {
529-
/// print(score)
528+
/// - A cursor of `Int` built from an SQL string (see ``DatabaseValueConvertible``):
529+
///
530+
/// ```swift
531+
/// try dbQueue.read { db in
532+
/// let sql = "SELECT score FROM player"
533+
/// let scores = try Int.fetchCursor(db, sql: sql)
534+
/// while let score = try scores.next() {
535+
/// print(score)
536+
/// }
530537
/// }
538+
/// ```
539+
///
540+
/// - A cursor of `Player` records built from a request (see ``FetchableRecord`` and ``FetchRequest``):
531541
///
532-
/// // A cursor of players,
533-
/// // built from a QueryInterfaceRequest:
534-
/// let request = Player.all()
535-
/// let players = try request.fetchCursor(db)
536-
/// while let player = try players.next() {
537-
/// print(player.name, player.score)
542+
/// ```swift
543+
/// try dbQueue.read { db in
544+
/// let request = Player.all()
545+
/// let players = try request.fetchCursor(db)
546+
/// while let player = try players.next() {
547+
/// print(player.name, player.score)
548+
/// }
538549
/// }
539-
/// }
540-
/// ```
550+
/// ```
541551
///
542552
/// A database cursor is valid only during the current database access (read or
543553
/// write). Do not store or escape a cursor for later use.

0 commit comments

Comments
 (0)