factor/extra/db2/result-sets/result-sets.factor

29 lines
832 B
Factor

! Copyright (C) 2009 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors kernel sequences ;
IN: db2.result-sets
TUPLE: result-set sql in out handle n max ;
GENERIC: #rows ( result-set -- n )
GENERIC: #columns ( result-set -- n )
GENERIC: advance-row ( result-set -- )
GENERIC: more-rows? ( result-set -- ? )
GENERIC# column 1 ( result-set column -- obj )
GENERIC# column-typed 1 ( result-set column -- sql )
: init-result-set ( result-set -- result-set )
dup #rows >>max
0 >>n ;
: new-result-set ( query handle class -- result-set )
new
swap >>handle
swap [ sql>> >>sql ] [ in>> >>in ] [ out>> >>out ] tri ;
: sql-row ( result-set -- seq )
dup #columns [ column ] with map ;
: sql-row-typed ( result-set -- seq )
dup #columns [ column-typed ] with map ;