SQLite3学習 Tclで操作する
SQLite3はもともとTcl拡張としてはじまったらしい。Tclで使いやすく設計されているのだとか。
情報源
前提
以下で環境構築しておくこと。libsqlite3-dev
,libsqlite3-tcl
も必須。
コード
丸パクリ。
$ vim sqlite.tcl
sqlite.tcl
package require sqlite3 sqlite3 db ./sample.db db eval { CREATE TABLE mytbl (id INT,name CHAR(10)) } db eval { INSERT INTO mytbl (id ,name) VALUES (1,'apple') } db eval { INSERT INTO mytbl (id ,name) VALUES (2,'banana') } db eval { INSERT INTO mytbl (id ,name) VALUES (3,'candy') } set resultset [db eval { SELECT id, name FROM mytbl }] foreach row $resultset { puts -nonewline $row } db eval { DROP TABLE mytbl } -list db close
$ tclsh sqlite.tcl 1apple2banana3candy
実行できた。が、改行やスペースが一切ない……。-nonewline
のせいか?
Tcl
そもそもTclの構文も知らない。tcl syntax
でググると以下がヒット。
日本語なら以下。
所感
いやこれは時間がかかる。Rust
→SQLite3
→Tcl
。もうキリがない。
そしてSQLite3用メソッドは39もあるらしい。
うん、eval
でSQL文発行できればもういいよね。
対象環境
- Raspbierry pi 3 Model B+
- Raspbian stretch 9.0 2018-11-13
- bash 4.4.12(1)-release
- SQLite 3.29.0
$ uname -a Linux raspberrypi 4.19.42-v7+ #1218 SMP Tue May 14 00:48:17 BST 2019 armv7l GNU/Linux