From c9db0fdee1f4ff607a9c9ca1316e0878bf850cc5 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Mon, 13 Apr 2009 17:40:35 -0500 Subject: [PATCH] refactor sqlite bind --- extra/db2/db2.factor | 4 ++-- extra/db2/sqlite/lib/lib.factor | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/extra/db2/db2.factor b/extra/db2/db2.factor index 708caa97ab..8278d18598 100644 --- a/extra/db2/db2.factor +++ b/extra/db2/db2.factor @@ -23,7 +23,7 @@ PRIVATE> : sql-bind-command ( sequence string -- ) f f [ sqlite-maybe-prepare [ - handle>> '[ [ _ ] 2dip 1+ swap sqlite-bind-text ] each-index + handle>> swap sqlite-bind-sequence ] [ sqlite-result-set new-result-set advance-row ] bi @@ -32,7 +32,7 @@ PRIVATE> : sql-bind-query ( in-sequence string -- out-sequence ) f f [ sqlite-maybe-prepare [ - handle>> '[ [ _ ] 2dip 1+ swap sqlite-bind-text ] each-index + handle>> swap sqlite-bind-sequence ] [ statement>result-sequence ] bi diff --git a/extra/db2/sqlite/lib/lib.factor b/extra/db2/sqlite/lib/lib.factor index 34918efb8d..26c56cbbd2 100644 --- a/extra/db2/sqlite/lib/lib.factor +++ b/extra/db2/sqlite/lib/lib.factor @@ -8,6 +8,9 @@ IN: db2.sqlite.lib : ?when ( object quot -- object' ) dupd when ; inline +: assoc-with ( object sequence quot -- obj curry ) + swapd [ [ -rot ] dip call ] 2curry ; inline + : sqlite-check-result ( n -- ) { { SQLITE_OK [ ] } @@ -107,3 +110,6 @@ IN: db2.sqlite.lib : sqlite-next ( prepared -- ? ) sqlite3_step sqlite-step-has-more-rows? ; + +: sqlite-bind-sequence ( handle sequence -- ) + [ 1+ swap sqlite-bind-text ] assoc-with each-index ;