日本語プログラミング言語Mind9でSQLite3に接続しグリッドビュー表示するプログラムです。
コンパイル・実行にはMind9 基本セット(無料評価版)が必要です。詳しくはMind9のダウンロードサイトをご覧ください。
ソースコード
SQLite3_01.src
※ SQLITE3 のデータベースを作成し、グリッドビューに表示する サンプル1
※ SQLite3_01 > guilib
※ 簡単のため、シンプルに記述しています。 実用時には、パラメータ渡しにするなど改良してください。
※ SQLITE3は、TCL/TKに標準で入っていますので、準備は不要です。
※ グリッドビュー(ツリービューの一種 ttk::treeviewは、TCL/TKに標準で入っていますので、準備は不要です。)
※ ただし、guilibにグリッドビューはありませんので、TCL/TK文を記述する必要があります。
※情報板の表示項目
IDラベルは ID。
氏名ラベルは ID。
年齢ラベルは ID。
情報板を表示とは (・ → ・)
情報板配置は ID
メインウィンドウで 3個の ラベルのIDを複数取得し IDラベルと 氏名ラベルと 年齢ラベルに 入れ
IDラベルと 氏名ラベルと 年齢ラベルを 3個で これらを有効化し
IDラベルと 氏名ラベルと 年齢ラベルを 3個で これらの並べ配置のIDを取得し 情報板配置に 入れ
左から右を 情報板配置に 並べ方向を設定し
情報板配置を 配置し。
SQLITE3使用開始とは (・ → ・)
「package require sqlite3」を 評価する。
SQLITE3データベース接続は (・ → ・)
「sqlite3 db "./sample01.db"」を 評価する。
SQLITE3データベースクローズは
「db close」を 評価する。
サンプルデータベース作成とは (・ → ・)
SQLITE3データベース接続する
※users というテーブルが無ければ、新規作成する
「db eval {CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY , name TEXT, age INT)}」を 評価する
※サンプルデータ追加する id はユニーク制約しています、実行のたびに新idで追加されます。
「db eval {INSERT INTO users (name, age) VALUES ('磯野波平',54)}」を 評価する
「db eval {INSERT INTO users (name, age) VALUES ('磯野ふね',50)}」を 評価する
「db eval {INSERT INTO users (name, age) VALUES ('磯野かつお',11)}」を 評価する
「db eval {INSERT INTO users (name, age) VALUES ('磯野ワカメ',9)}」を 評価する
「db eval {INSERT INTO users (name, age) VALUES ('ふぐ田マスオ',28)}」を 評価する
「db eval {INSERT INTO users (name, age) VALUES ('ふぐ田サザエ',24)}」を 評価する
「db eval {INSERT INTO users (name, age) VALUES ('ふぐ田タラオ',3)}」を 評価する
SQLITE3データベースクローズする。
グリッドビュー表示は (・ → ・)
※ 縦スクロール付きのグリッドビューを表示する
「frame .f」を 評価する
「pack .f -fill both -expand yes」を 評価する
「ttk::treeview .f.grdvw001 -columns {id name age} -show headings -yscrollcommand ".f.vsb set"」を 評価する
「ttk::scrollbar .f.vsb -orient vertical -command ".f.grdvw001 yview"」を 評価する
※ 各列の見出しを設定
「.f.grdvw001 heading id -text "ID"」を 評価する
「.f.grdvw001 heading name -text "名前"」を 評価する
「.f.grdvw001 heading age -text "年齢"」を 評価する
※ 各列の幅を設定
「.f.grdvw001 column id -width 50 -anchor center」を 評価する
「.f.grdvw001 column name -width 150」を 評価する
「.f.grdvw001 column age -width 50 -anchor center」を 評価する
「pack .f.vsb -side right -fill y」を 評価する
「pack .f.grdvw001 -side left -fill both -expand yes」を 評価する。
グリッドビューにデータ表示するとは (・ → ・)
SQLITE3データベース接続する
※ 検索結果をループでグリッドビューに追加
「set results [list]」を 評価する
「db eval {SELECT id, name, age FROM users WHERE age <= 35 } 」続く ※35歳以下を抽出
「{.f.grdvw001 insert {} end -values [list $id $name $age]}」を 評価する
SQLITE3データベースクローズする。
選択したデータを情報板に表示するとは (・ → ・)
「set sel [.f.grdvw001 selection]」を 評価する
「set values [.f.grdvw001 item $sel -values]」を 評価する
「set id [lindex $values 0]」を 評価する
「set name [lindex $values 1]」を 評価する
「set age [lindex $values 2]」を 評価する
「id」を 参照し IDラベルに テキストを設定し IDラベルを 変更を反映し
「name」を 参照し 氏名ラベルに テキストを設定し 氏名ラベルを 変更を反映し
「age」を 参照し 年齢ラベルに テキストを設定し 年齢ラベルを 変更を反映する。
グリッドビュー左クリック時の処理とは (イベント引数 → ・)
イベント引数を捨て
選択したデータを情報板に表示する。
グリッドビュー左クリックイベントをバインド登録するとは (・ → ・)
左クリックに グリッドビュー左クリック時の処理の 実行情報で 空列で
メインウィンドウに マウスイベントのバインドを登録する。
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
メインとは
SQLITE3使用開始する
サンプルデータベース作成
グリッドビュー左クリックイベントをバインド登録し
グリッドビュー表示し
グリッドビューにデータ表示し
情報板を表示し
「メインの終り」で このメッセージでスタック検査し
。
※終り※
実行結果
年齢が35歳以下の5人が表示され、セレクトした4磯野ワカメ 9歳が 下部に表示されます。右にスクロールバーが付いています。
