factor/libs/sql/sqlite/execute.factor

35 lines
1.2 KiB
Factor
Raw Normal View History

2006-12-17 23:29:33 -05:00
USING: kernel math namespaces sql sql:utils ;
2006-12-15 04:06:17 -05:00
IN: sqlite
2006-12-17 23:29:33 -05:00
M: sqlite execute-sql* ( db string -- )
>r connection-handle r>
2006-12-15 04:06:17 -05:00
sqlite-prepare dup [ drop ] sqlite-each sqlite-finalize ;
2006-12-17 23:29:33 -05:00
M: sqlite create-table* ( db tuple -- )
create-sql execute-sql* ;
M: sqlite drop-table* ( db tuple -- )
drop-sql execute-sql* ;
M: sqlite insert-tuple* ( db tuple -- )
2dup insert-sql* >r >r connection-handle r> over r>
sqlite-prepare over bind-for-insert
[ drop ] sqlite-each sqlite-finalize
>r sqlite-last-insert-rowid number>string r> make-persistent ;
M: sqlite delete-tuple* ( db tuple -- )
2dup delete-sql* >r >r connection-handle r> r>
swapd sqlite-prepare over bind-for-delete
[ drop ] sqlite-each sqlite-finalize remove-bottom-delegate ;
M: sqlite update-tuple* ( db tuple -- )
2dup update-sql* >r >r connection-handle r> r>
swapd sqlite-prepare swap bind-for-update
[ drop ] sqlite-each sqlite-finalize drop ;
M: sqlite select-tuple* ( db tuple -- )
2dup select-sql* >r >r connection-handle r> r>
swapd sqlite-prepare over bind-for-select
[ break [ break pick restore-tuple , ] sqlite-each ] { } make
[ sqlite-finalize ] keep ;