works now added by rien on Fri Nov 22 21:30:46 2013
(use srfi-1) ; partition (use srfi-13) ; string-join string-prefix? (use (prefix regex regex:)) ; string-split-fields (import (prefix sql-de-lite sql:)) ;;;; ---------------------------------------- ; (set! *db* (open-database "/Users/user1/Documents/scheme/my.db")) (module global (*db*) (import scheme chicken (prefix sql-de-lite sql:)) (define *db* (sql:open-database "/Users/user1/Documents/scheme/my.db")) ) (module queries (new-note-with-title new-note-fti) (import scheme chicken) ;;; FTI = full text index (define new-note-with-title ;; INPUTS: title "INSERT INTO notes(title) VALUES (?);") (define new-note-fti ;; INPUTS: note-id, title "INSERT INTO fulltext(docid,title) VALUES (?,?);") ) (module tagnotes () (import scheme chicken (prefix sql-de-lite sql:) (prefix regex regex:) (prefix queries query:) global) (use srfi-1 srfi-13 data-structures) ;; make-title "title" -> "title" ;; make-title "" -> "untitled" (define (make-title title) (if (string=? title "") "untitled" title)) (define (last-id) (sql:last-insert-rowid *db*)) (define (insert insert-query . args) (let ((stmt (sql:sql *db* insert-query))) (apply sql:exec (cons stmt args)))) (define (new-note title) (insert query:new-note-with-title title) (insert query:new-note-fti (last-id) title)) (define (match-words s) (regex:string-split-fields "[a-z]+" s)) (define (commafy-tokens tokens) (string-join (string-split tokens " ") ",")) #;(define (search token-string) (let ((comma-tokens (commafy-tokens token-string))) )) )