40歳からのキャリアチェンジ

20代はエンジニア・PM、30代はWeb系エンジニア向けのキャリアアドバイザー。40代の今はフリーランスで開発含めて色々やってます。技術ネタとしてはRuby/RailsとJavaScript関連あたり

007-Mac標準で利用できるsqlite3を使ったデータベース接続処理はこう書く

再度問題点を整理

昨日書いたエントリ

日本語が含まれるsqlite3のデータベースからデータを読み込む方法について書きたい

と最後書きましたが、とりあえず現状の問題点を整理

出来ていること
  • sqlite3に日本語のテストデータを登録するまでは出来ている。
  • Titanium上で、外部のsqlite3のデータベースを使う場合にはTitanium.Database.installメソッドを使う
  • Titanium.Database.installメソッドを使ってデータベース接続&SQL発行
出来てないこと

日本語のテストデータを登録したものではなく、何故かこのサンプルを作る際に一番最初に試したテストデータが表示されてしまい、日本語が表示されていない
bad

これで解決

APIドキュメントは何度か読んでいたのですが、改めて読み返してもinstall メソッドの所は

install (path, name)
install a database from the application Resources folder (at build time) and return a reference to the opened database. it is safe to call this method multiple times since this method will only install once if it doesn't already exist on the device.

Arguments

path [string] the path (relative to the main application Resources folder at build time) to the db to install. this file must be in the SQLite 3 file format.
name [string] the name of the database

という記述しかなく「the name of the database」って何なの・・とこの説明がさらに欲しくなる状況でした。

「そもそも自分は日本語が含まれているデータベースに接続しているつもりなのに、なんでこのサンプルを作る際に一番最初に試したテストデータが表示されているんだろう??もしかして、引数の名前の所がそのまま引き継がれているのかな」

ということに気づいて

var db = Titanium.Database.install('./dataset.db','quotes');

という所を

var db = Titanium.Database.install('./dataset.db','dataset');

としたら、無事意図したように表示できましたー
good

installメソッドの引数の名前ってうのは、エイリアス(?)のようなものかどうかよくわかりませんが、これでとりあえず解決できた