;;; Insert a list of records into an SQLite3 database (uses the sql-de-lite egg). ;;; db: string, filename of database ;;; sql-str: string, sql-query string ;;; records: list, where each element us a list containing record values (define (bulk-insert db sql-str records) (let* ((db (open-database db)) (insert-all (lambda () (for-each (lambda (r) (apply exec (cons (sql db sql-str) r))) records)))) (with-transaction db insert-all) (unless (database-closed? db) (close-database db))))