fixes #7241
This commit is contained in:
parent
0c10fc67eb
commit
7f0559b93f
1 changed files with 16 additions and 10 deletions
|
|
@ -166,10 +166,12 @@ iterator fastRows*(db: DbConn, query: SqlQuery,
|
||||||
var stmt = setupQuery(db, query, args)
|
var stmt = setupQuery(db, query, args)
|
||||||
var L = (column_count(stmt))
|
var L = (column_count(stmt))
|
||||||
var result = newRow(L)
|
var result = newRow(L)
|
||||||
while step(stmt) == SQLITE_ROW:
|
try:
|
||||||
setRow(stmt, result, L)
|
while step(stmt) == SQLITE_ROW:
|
||||||
yield result
|
setRow(stmt, result, L)
|
||||||
if finalize(stmt) != SQLITE_OK: dbError(db)
|
yield result
|
||||||
|
finally:
|
||||||
|
if finalize(stmt) != SQLITE_OK: dbError(db)
|
||||||
|
|
||||||
iterator instantRows*(db: DbConn, query: SqlQuery,
|
iterator instantRows*(db: DbConn, query: SqlQuery,
|
||||||
args: varargs[string, `$`]): InstantRow
|
args: varargs[string, `$`]): InstantRow
|
||||||
|
|
@ -177,9 +179,11 @@ iterator instantRows*(db: DbConn, query: SqlQuery,
|
||||||
## same as fastRows but returns a handle that can be used to get column text
|
## same as fastRows but returns a handle that can be used to get column text
|
||||||
## on demand using []. Returned handle is valid only within the iterator body.
|
## on demand using []. Returned handle is valid only within the iterator body.
|
||||||
var stmt = setupQuery(db, query, args)
|
var stmt = setupQuery(db, query, args)
|
||||||
while step(stmt) == SQLITE_ROW:
|
try:
|
||||||
yield stmt
|
while step(stmt) == SQLITE_ROW:
|
||||||
if finalize(stmt) != SQLITE_OK: dbError(db)
|
yield stmt
|
||||||
|
finally:
|
||||||
|
if finalize(stmt) != SQLITE_OK: dbError(db)
|
||||||
|
|
||||||
proc toTypeKind(t: var DbType; x: int32) =
|
proc toTypeKind(t: var DbType; x: int32) =
|
||||||
case x
|
case x
|
||||||
|
|
@ -210,9 +214,11 @@ iterator instantRows*(db: DbConn; columns: var DbColumns; query: SqlQuery,
|
||||||
## on demand using []. Returned handle is valid only within the iterator body.
|
## on demand using []. Returned handle is valid only within the iterator body.
|
||||||
var stmt = setupQuery(db, query, args)
|
var stmt = setupQuery(db, query, args)
|
||||||
setColumns(columns, stmt)
|
setColumns(columns, stmt)
|
||||||
while step(stmt) == SQLITE_ROW:
|
try:
|
||||||
yield stmt
|
while step(stmt) == SQLITE_ROW:
|
||||||
if finalize(stmt) != SQLITE_OK: dbError(db)
|
yield stmt
|
||||||
|
finally:
|
||||||
|
if finalize(stmt) != SQLITE_OK: dbError(db)
|
||||||
|
|
||||||
proc `[]`*(row: InstantRow, col: int32): string {.inline.} =
|
proc `[]`*(row: InstantRow, col: int32): string {.inline.} =
|
||||||
## returns text for given column of the row
|
## returns text for given column of the row
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue