やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

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ググると以下がヒット。

 日本語なら以下。

所感

 いやこれは時間がかかる。RustSQLite3Tcl。もうキリがない。

 そしてSQLite3用メソッドは39もあるらしい。

 うん、evalSQL文発行できればもういいよね。

対象環境

$ uname -a
Linux raspberrypi 4.19.42-v7+ #1218 SMP Tue May 14 00:48:17 BST 2019 armv7l GNU/Linux

前回まで