前の記事で慌てて訂正したとおり、当初sqlite3ではテーブル名が列挙できないと思っていたのが実はできることがわかりました。
http://www.sqlite.org/faq.html#q7
オフィシャルサイトのFAQに載っていたんですね…はずかしっ!
具体的なテーブル名の取得方法は上記サイトに書いてあるとおりです。
で、この情報をもとに前の記事で掲載したCGIを改良しました。
ソース抜粋
cur = con.cursor() cur.execute("select name from sqlite_master where type='table'") for catalog in cur.fetchall(): tableName = catalog[0] columnIndex = 0
いちおう、使い方を書いておきます。
まず、DBがない状態の場合、テーブルを作るための画面が表示されます。
そこで好きなテーブル名でcreate tableしてください。”create table”ボタンを押すとデフォルトのカラムが設定されたテーブルが生成されます。
カラム名を含め、好きなテキストボックスの文字列を変更して、”Change”ボタンを押してください。結果として、入力した内容が反映された画面が表示されます。
複数のテーブルになっても表示・編集可能です。現状ではDBファイルのファイル名は固定ですが、ユーザが指定できるようにすれば任意のDBファイルの中身を見ることができるようになると思います。