第7回:データベース(DB)とMZ プラットフォームの連携を学ぼう(SELECT)

Select 文の実行方法と MZ の連携

Select 文とは・・データベースに登録してあるデータを参照し情報を引き出す際に用いる構文。

使用のイメージ

  • 受注リストを表示する
  • 顧客リストを表示する
  • 年間の売上ベスト10を表示する

溜まっているデータをユーザに判り易く表示して見せる必要があるために、様々な関数が存在する。単純に抽出するだけならば、スグにでも使える様になるが、集計したり、区切ってデータを算出する機会が多く上手く使うには他のコマンドと比べて一番難度が高い。

1:必要なコンポーネントを構成する

MZ Platform アプリケーションビルダーを立上げ C:\MZPlatform\3.6_64\AP_DATA\Tutorial の「Lesson04(ウィンドウ)-2.mzax」を読み込む。

①コンポーネント追加で画面構成部品「テーブル」追加

②コンポーネント追加で処理部品⇒変数「文字列格納変数」と「テーブル格納変数」各1追加

③コンポーネント追加で入出力 ⇒「データベースアクセス」追加

④ ボタンコンポーネントからフレームが閉じると設定されているが、右側のフレームコンポーネント上で右クリック接続コンポーネントを選択し「データベースアクセス」をクリック選択。フレームコンポーネントをデータベースアクセスコンポーネントへ変更する。

⑤ データベースアクセスをWクリックしてメソッド設定を行う
 メソッド「データベースに接続する(String, String, String, String)」選択4行分設定する値がある
0:ドライバー名 取得方法「固定値」、メソッド/値「com.mysql.jdbc.Driver
1:データベースのURL 取得方法「固定値」、
メソッド/値を「jdbc:mysql://localhost/MZ?useUnicode=true&characterEncoding=SJIS
2:ユーザ名 取得方法「固定値」、メソッド/値を「root
3:パスワード 取得方法「固定値」、メソッド/値を「root
※諸々の初期設定を変えている場合はそれぞれに応じた値を入力する事
MZ…さきほど作成したデータベースの名前
root…Mysql をインストールする際に登録したユーザ名とパスワード

⑥ ボタンから繋がる○アクションイベントをダブルクリック、データベースアクセスコンポーネントの下に「文字列格納変数」追加
メソッド「文字列を設定する(イベント発生なし)(String)」
取得方法「固定値」
メソッド/値「 select_*_from_staff」
※「_」はスペース、「*」はアスタリスク(Shift+け)
コピペするならこちら⇒「select * from staff」

⑦ ⑥同様、データベースアクセスコンポーネント追加
メソッド「SQL 文を実行する(String)」
取得方法「メソッド戻り値」
コンポーネント「文字列格納変数」
メソッド/値「文字列を取得する」

⑧ ⑥同様、テーブル格納変数追加
メソッド「テーブルを設定する(PFObjectTable)」
取得方法「メソッド処理結果」
メソッド/値「SQL 文を実行する(データベースアクセス)」

⑨ ⑥同様、データベースアクセスコンポーネント追加
メソッド「データベースとの接続を切断する()

⑩ ⑥同様、テーブルコンポーネント追加
メソッド「テーブルデータを設定する(PFObjectTable)」
取得方法「メソッド戻り値」
コンポーネント「テーブル格納変数」
メソッド/値「テーブルを取得する」

⑪ ビルダーの下の方にあるアイコン「画面編集」でテーブルコンポーネントを追加。

2:動作チェック

実行ボタンを押して、ボタン「閉じる」を押すと、テーブルにデータが反映される。最初に設定したスタッフデータベースから情報を引き出した事になる。
(ちなみにボタンの名前が閉じるではややこしいのでボタン上で右クリックしてテキストで「開始」と変更する)

3:設定プログラムの解説

言われるがままに設定しているので何故この方法を取るのか不明と思うので少し解説を入れたい。乱暴な話ではあるがMZを使う特性上方程式の様な物でこれで覚えて下さいという点もある。

①~③は今回の Select 文を使う上で必要なコンポーネントを準備

④~⑩は起動するメソッドを追加

⑤ データベースへアクセスするための準備をするコマンドが入っている、必ず最初に実施。一度設定すると変える事はない

SQL 文を宣誓している。今回は「select * from staff」と実行しており、「スタッフテーブルから情報を全て取得する」という意味 今後別の情報を引き出したい時はここの内容を随時変更して使っていく事となる。

⑦ ⑥で宣言した内容を実行しているメソッド。変える事はない

⑧ ⑦で実行したSQLデータがテーブルに格納されている。これも変える事はない

⑨ データベースへ接続してデータを取り出したので通信を切断している。何事も開けたら閉じる。変える事はない。

⑩ テーブル格納変数に取得したデータをテーブルコンポーネントへ移行している。テーブル格納変数へ入れたままだと、ユーザは画面で見る事が出来ないのでテーブルコンポーネントに情報を移して閲覧出来る様にしている。これも変える事はない。

いかがでしょうか?⑥番以外は変更しないのである。この形をキープしておけばあらゆる場面で応用が効く事が理解出来ると思う。

今回作成したプログラムは実行ファイルとして「DBセレクト」として保存する。保存方法は MZ の画面下、「開始」や「画面編集」がある所の真ん中よりやや右に「保存」とある。ボタンを押して C:\MZPF\bin にファイル名を「Select」として保存する。すると「Select.mzas」ファイルと「Select.mzax」ファイルと2つ生成される。
.mzax」=XML ファイル形式でMZのバージョンが異なっても影響なく開く事が出来る、ファイルサイズが大きめ。
.mzas」=バイナリファイル形式でMZのバージョンが異なると開かない事もある、ファイルサイズは小さめ。

まとめ

今回はMZとDBの連携で「SELECT」(基礎)を解説。
実際に IT 運用する場合はデータ入力「INSERT」とデータの参照「SELECT」、そして既に入力してあるデータの編集「UPDATE」が主な業務となる。
この基本の型をマスターすればある程度のシステムは構築可能になる。
今回作成したプログラムは今後も使用頻度が高い。
保存して「select.mzax」ファイルとしてスグ参照出来る様にして欲しい。
次回は MZ 上でデータを登録する「INSERT」のやり方を記載する。

ダウンロードファイル:Select.mzax
https://drive.google.com/file/d/1gy5lmjwT2sOG8n-iGeMtmpZqzDf1Gzyp/view?usp=sharing

    固定ページ:
  • 1
  • 2