2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

日本語プログラミング言語Mind9でSQLite3に接続しグリッドビュー表示

2
Last updated at Posted at 2026-08-09

日本語プログラミング言語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使用開始する    
    サンプルデータベース作成
    グリッドビュー左クリックイベントをバインド登録し
    グリッドビュー表示し
    グリッドビューにデータ表示し
    情報板を表示し

  「メインの終り」で このメッセージでスタック検査し
	。
※終り※

実行結果

SQLite3_01.png

年齢が35歳以下の5人が表示され、セレクトした4磯野ワカメ 9歳が 下部に表示されます。右にスクロールバーが付いています。

2
0
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?