]> gitweb.factorcode.org Git - factor.git/commitdiff
sqlite -- add with-sqlite, update example
authorerg <erg@trifocus.net>
Mon, 9 Oct 2006 07:57:40 +0000 (07:57 +0000)
committererg <erg@trifocus.net>
Mon, 9 Oct 2006 07:57:40 +0000 (07:57 +0000)
contrib/sqlite/sqlite.factor
contrib/sqlite/tuple-db-tests.factor

index 046b52637aa2a5667c2fb69f1a7c6a42ea371086..2900fa9eb45870d0491314d43e2ec94ca195ae69 100644 (file)
@@ -12,6 +12,7 @@ IN: sqlite
 USING: alien compiler errors libsqlite kernel namespaces sequences strings ;
 
 TUPLE: sqlite-error n message ;
+SYMBOL: db
 
 ! High level sqlite routines
 : sqlite-check-result ( result -- )
@@ -117,3 +118,10 @@ DEFER: (sqlite-map)
 
 : sqlite-map ( statement quot -- seq )
   [ ] (sqlite-map) ;
+
+: with-sqlite ( path quot -- )
+    [
+        >r sqlite-open db set r>
+        [ db get sqlite-close ] cleanup
+    ] with-scope ;
+
index 58007b35a08e8fe31a61ad520fedcb566fb37554..8ad5ce8d03c1b978d31183fbbdf6f23f0ba02ba5 100644 (file)
@@ -1,26 +1,6 @@
 ! Copyright (C) 2005 Chris Double.
-! 
-! Redistribution and use in source and binary forms, with or without
-! modification, are permitted provided that the following conditions are met:
-! 
-! 1. Redistributions of source code must retain the above copyright notice,
-!    this list of conditions and the following disclaimer.
-! 
-! 2. Redistributions in binary form must reproduce the above copyright notice,
-!    this list of conditions and the following disclaimer in the documentation
-!    and/or other materials provided with the distribution.
-! 
-! THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
-! INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-! FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-! DEVELOPERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-! SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-! PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-! OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-! WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-! OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-! ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-!
+! See http://factorcode.org/license.txt for BSD license.
+
 IN: tuple-db
 USING: io kernel sequences namespaces
 hashtables sqlite errors math words generic test ;
@@ -29,30 +9,29 @@ TUPLE: testdata one two ;
 
 testdata default-mapping set-mapping
 
-SYMBOL: db
-"contrib/sqlite/test.db" sqlite-open db set-global
-
-db get-global testdata create-tuple-table
-
-[ "two" [ ] ] [
-  db get-global "one" "two" <testdata> insert-tuple
-  db get-global "one" f <testdata> find-tuples 
-  first [ testdata-two ] keep
-  db get-global swap delete-tuple    
-  db get-global "one" f <testdata> find-tuples 
-] unit-test
-
-[ "junk" ] [
-  db get-global "one" "two" <testdata> insert-tuple
-  db get-global "one" f <testdata> find-tuples 
-  first  
-  "junk" over set-testdata-two
-  db get-global swap update-tuple
-  db get-global "one" f <testdata> find-tuples 
-  first [ testdata-two ] keep
-  db get-global swap delete-tuple      
-] unit-test
-
-db get-global testdata drop-tuple-table
-
-db get-global sqlite-close
\ No newline at end of file
+"contrib/sqlite/test.db" [
+
+    db get testdata create-tuple-table
+
+    [ "two" [ ] ] [
+    db get "one" "two" <testdata> insert-tuple
+    db get "one" f <testdata> find-tuples 
+    first [ testdata-two ] keep
+    db get swap delete-tuple    
+    db get "one" f <testdata> find-tuples 
+    ] unit-test
+
+    [ "junk" ] [
+    db get "one" "two" <testdata> insert-tuple
+    db get "one" f <testdata> find-tuples 
+    first  
+    "junk" over set-testdata-two
+    db get swap update-tuple
+    db get "one" f <testdata> find-tuples 
+    first [ testdata-two ] keep
+    db get swap delete-tuple      
+    ] unit-test
+
+    db get testdata drop-tuple-table
+] with-sqlite
+