database.scm 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. ;; (library (database)
  2. ;; )
  3. (import
  4. (dbi dbi)
  5. (fslib))
  6. ;; Log into the database.
  7. (define db
  8. (dbi-open "sqlite3"
  9. (fsing-join "data" "lessons")))
  10. ;; Create a table.
  11. (dbi-query db "create table metadata (id INTEGER, description TEXT, source_note TEXT)")
  12. (dbi-query db "create table item
  13. (id INTEGER PRIMARY KEY,
  14. traditional TEXT,
  15. simplified TEXT,
  16. phonetic_script TEXT,
  17. native )")
  18. (dbi-query db "create table item_meta (id INTEGER, description TEXT, source_note TEXT)")
  19. ;; Look at the return status of the last SQL command
  20. (display db) (newline)
  21. ;; Populate the table with values.
  22. (dbi-query db "insert into hellotable ('id', 'name') values('33', 'ola')")
  23. (dbi-query db "insert into hellotable ('id', 'name') values('34', 'dzien dobre')")
  24. (dbi-query db "insert into hellotable ('id', 'name') values('44', 'annyong haseyo')")
  25. (display db) (newline)
  26. ;; Display each of the rows of the table, in turn.
  27. (dbi-query db "select * from hellotable")
  28. (display db) (newline)
  29. (write (dbi-get_row db)) (newline)
  30. (write (dbi-get_row db)) (newline)
  31. (write (dbi-get_row db)) (newline)
  32. (write (dbi-get_row db)) (newline)
  33. ;; Close the database.
  34. (dbi-close db)
  35. (display db) (newline)