ナッキーの「Turbo Delphiはじめて奮戦記」 - 第16回 アンケートプログラムでデータベース対応

By: Hitoshi Fujii

Abstract: 前回はアンケートプログラムを、より使いやすく作り直しました。しかし、追加や削除、編集などを実現するために多くの工程が必要でした。今回はデータベースを使って効率よくアンケートプログラムを作成します

Hide image
nacky75

ナッキー

いよいよ、データベースが登場するんですねー。とはいえ、データベースってどんなものかよくわかっていないんです。なんだか難しそうで、近寄りがたい感じですよね。

 

Hide image
takahashi75

高橋先生

そう嫌がらなくてもいいんじゃないかな。データベースは前回やった削除や編集も得意だよ。今回はInterBaseというデータベースソフトを使ったデータベースを作成。そして前回作ったアンケートプログラムを、データベースを使ったアプリケーションに作り直すよ。


    データベースとは

データベースって名前だけは知っているけれど、「どんなものか?」ということまではよくわからないんです。ファイルみたいなものかな?教えて、高橋先生!

高橋先生:データベースはファイルのようにデータが入っているというだけではないんだ。たくさんのデータが管理された状態で入っている。管理しているのは「データベース管理システム」(DBMS)。データを新たに入力したり、既存のデータを参照するとき活躍してくれる。ここで使っている「データベース」とは「リレーショナルデータベース」(RDB)を指している。「データベース」っていうとRDBが一般的といえるかな。

ナッキー:ファイルもデータをしまっていたけれど、どう違うんですか?

高橋先生:ファイルの場合は、管理する部分をプログラムにゆだねているんだ。プログラムでファイルを参照するとき、プログラムに正しい方法で記述する必要がある。ダブったり、間違ったりしたデータを登録することもあるよ。データベースの場合は、RDBMSでデータがダブらないよう、間違ったデータが入らないようチェックできる。

ナッキー:ふーん。でもわざと同じ内容を2つ入力したいときはどうするんだろう?

高橋先生:大丈夫。実際の内容とは別に「ID」などの連番を持つ項目を追加すればいいんだ。まったく同じ内容のデータでも、連番までは同じにならないだろう。連番じゃなくても何か固有のデータを持つ必要がある。

ナッキー:データベースに登録するにはオリジナルじゃないといけないのね。

高橋先生:細かいところはデータベースソフトの種類によって違っているけれど、基本は一緒だよ。ここでは付属している「InterBase 7.5 Developer」で練習してみよう。

ナッキー:あ、面倒くさくってまだインストールしてません!

高橋先生:じゃあ、すぐにインストールしてね。もしインストール用のファイルがなかったらもう一度Turbo Downlods(http://www.turboexplorer.com/jp/downloads)でダウンロードしよう。ダウンロードするとインストールキーが送られてくる。でも、変更しなくていいよ。.NET関連のプログラムもインストールしなくていい。Turbo Delphi関連が入っている「TurboDelphi_JP.exe」ファイルだけを解凍して使おう。「Start_Here.hta」ファイルかTurbo Delphi用の「Install.exe」ファイルを実行してインストールしよう。


では、「TurboDelphi_JP.exe」ファイルを使った場合を紹介します。ファイルが見つからない方はダウンロードしてください。TurboDelphi_JP.exeダブルクリックして適当な場所に解凍します。解凍したファイルから、Start_Here.htaをダブルクリックしてウィンドウを開きます。

Hide image
01Start_Here

図01 Start_Here.htaの画面

「本体のインストール」の[インストールの実行]ボタンをクリックして「Turbo Delphi CD ブラウザ」の画面を表示します。

Hide image
02Turbo-Delphi-CD-ブラウザ

図02 Turbo Delphi CD ブラウザ

「Borland InterBase 7.5」をクリックしてインストールを進めます。操作を表にしますので参考にしながら進めます。

画面

操作

InterBase 7.5

「日本語」が選択されていることを確認

[OK]ボタンをクリック

Hide image
03InterBase7

図03 InterBase 7.5

Borland InterBase 7.5 へようこそ

[次へ]ボタンをクリック

使用許諾契約

内容を読んで「使用許諾契約の条項に同意する」にチェック

[次へ]ボタンをクリック

Hide image
04使用許諾契約

図04 使用許諾契約

インストールセットを選択

「Server and Client」をクリックして選択

[次へ]ボタンをクリック

Hide image
05インストールセットを選択

図05 インストールセットを選択

InterBaseマルチインスタンスの設定

「No」が選択されていることを確認

[次へ]ボタンをクリック

インストールフォルダを選択

インストール先を入力

[次へ]ボタンをクリック

Hide image
06インストールフォルダを選

図06 インストールフォルダを選択

インストール前の要約

確認後[インストール]ボタンをクリック


あとはインストールが完了するのを待ってインストールを終了します。再起動しなくても、InterBaseを起動できます。

    テーブルとクエリ

インストールはできたけど、これだけで使えるようになるのかな?データベースについても、まだよくわからないな。教えて、高橋先生!

高橋先生:データベースは管理されたデータだ、というところまで説明したね。じゃあ、今度はデータについて説明しよう。データベースではデータを関連するものでまとめている。小さいまとまりは、「レコード」や「行」と呼ばれている。たとえばアドレス帳を考えた場合、名前と電話番号、郵便番号、住所などの情報を何人分もまとめて書いてあるわけだ。アドレス帳の1人分の情報が「レコード」になる。ある人に関連する、小さな情報のまとまりだね。

ナッキー:たとえば名刺1枚もレコードってことかな?

高橋先生:まあ、1人分のまとまった情報という意味では名刺1枚はレコードといえなくもないかな。ただ、載っている項目が統一されていないよね。「名前」とか「電話番号」といった事柄のまとまりをデータベースでは「フィールド」や「項目」と呼んでいる。

ナッキー:それじゃあ、データベースはフィールドが整ってなくちゃ難しいのね。

高橋先生:そういうこと。レコードが何かの条件でまとまったものは「テーブル」という。ファイルの中に実際に表の形で保存されているわけじゃないけれど、レコードを行、フィールドを列にして並べると表のようなイメージだね。

Hide image
07アドレステーブル

図07 アドレステーブル

ナッキー:表の形だと、データベースっぽい感じがします。でもこれは「テーブル」なんですよね。テーブルとデータベースの関係はどうですか?

高橋先生:アドレス帳の例を続けると、たとえばアドレステーブルが家族の人数分あったとしたらどうだろう。父、母、姉、弟がいたら4つのテーブルが存在することになる。これらをまとめて管理するのがデータベースだ。データベースにすると家族全員のテーブルを一度に閲覧したり、子供の分だけまとめたりできるよ。

ナッキー:表の1つがテーブルで、テーブルが集まったものがデータベースってこと?

高橋先生:複数のテーブルをまとめて管理しているのがデータベースだね。

ナッキー:うー「管理してる」というところがポイントなのね。

高橋先生:データを参照するにはテーブルを使うほかに、クエリというのも使えるよ。クエリは「アドレステーブルの住所フィールドが東京の人だけ取り出す」といった、データをより分ける条件などが記されたもの。クエリを使うと、記された条件に合ったデータをテーブルの中から取り出すことができるんだ。取り出したデータは、通常のテーブルと同じように見たり加工することもできるよ。

ナッキー:クエリを実行するってどうやるんですか?

高橋先生:データベースのツールを使ったり、プログラムで実行することができる。条件などの記述には「SQL(Structured Query Language, 構造化問合せ言語)」という言語を使うものがほとんどだ。データベースソフトによって若干の違いが出るけれど、おおむね同じように記述できるよ。

SQLを使うと様々なことができるけれど、その中でもよく使われるのが「抽出」だ。「抽出」はSQLで記述した条件によってデータの絞込みをすること。抽出によってできたデータの集まりや、テーブルのことをまとめて「データセット」と呼ぶよ。

Hide image
08データベースの中のデータ

図08 データベースの中のデータセット

SQLを使うと抽出だけではなくて、データやテーブル、データベースの操作もできる。たとえばレコードを削除したり、テーブルの名前を変えたり、データベースを作ったり。SQLはデータベースを扱うための問い合わせ言語だね。

機能

コマンド

概要

抽出

SELECT

条件を満たすフィールドやレコードをデータセットから取り出す

生成

CREATE

データベースやテーブルなどを定義する

挿入

INSERT

レコードを挿入する

更新

UPDATE

データセットを更新する

削除

DELETE

レコードの削除


ナッキー:へぇ、SQLっていろいろとできるのね。でもその分難しそうだな。SQLも覚えないといけないんですよね。

高橋先生:少しは勉強が必要だけど、ここでは使いながら、紹介することにしよう。SQL自体はそれほど難しくないよ。

ナッキー:レコードが集まってテーブルになって、テーブルやクエリの管理をしているのがデータベースということなのね。SQLは心配だけど、がんばってみよう。

高橋先生:じゃあ、さっそくSQLを使ってデータベースを作ってみよう。

ナッキー:えーもう作っちゃうんですか?

高橋先生:下準備から紹介していくよ。


    データベースを作ろう

    InterBaseサービスマネージャー

下準備って何が必要なんだろう。やっぱり「データベース」を作るんだもの大変に決まっているわね。アンケートプログラムのデータをデータベースで作るのよね。

高橋先生:InterBaseのデータベースを使うためにはInterBaseサーバーを起動しておく必要がある。InterBaseサービスマネージャーはInterBaseサーバーの管理をしてくれるツールで、InterBaseサーバーの起動ができるよ。Windows OSのスタートメニューを使ってInterBase サービスマネージャーを起動しよう。

ナッキー:下準備はほかに何をしたらいいですか?

高橋先生:起動できたら「InterBaseをWindowsサービスとして起動する」のチェックをはずして[起動(S)]ボタンをクリックする。それで下準備は完了だね。

ナッキー:え?それだけなんですか?もっといろいろやるのかと思った。

ちょっと気になったんですけど、ネットワークを使ってなくてもInterBaseサーバーを使うんですか?「サーバー」っていうとネットワークって感じがします。

高橋先生:「InterBaseクライアント」はInterBase データベースのデータにアクセスするプログラムのこと。InterBaseサーバー、つまりデータベースとInterBaseクライアント、つまりプログラムが同じパソコンにあればローカル接続になるし、ネットワークでつながっていればリモート接続ということになる。どちらにしろ、InterBaseサーバーは必要だよ。

ナッキー:プログラムとデータベースは「接続」するから、「InterBaseサーバー」って呼ぶんですね。


下準備は簡単だったわね。では操作してみます。Windows OSのスタートメニューで「Borland InterBase 7.5 Develper [instance = gds_db]」の「InterBase サービスマネージャー [instance = gds_db]」を起動します。

「ステータス(T)」欄に、「InterBaseをWindowsサービスとして起動する」を確認して、先頭のチェックが付いていたらクリックしてはずします。「ステータス(T)」欄に「InterBaseサーバーは停止中」と表示しているのを確認します。もしも「InterBaseサーバーは稼動中」なら、そのまま[閉じる](×)ボタンで終了します。「InterBaseサーバーは停止中」と表示されていれば、[起動(S)]ボタンをクリックして起動します。「InterBaseサーバーは稼動中」と変化したのを確認して[閉じる](×)ボタンで終了します。

Hide image
09InterBaseサービスマネージ

図09 InterBaseサービスマネージャーの起動

稼動していればInterBaseサービスマネージャーを終了しても稼動したままなんですって。稼動している証拠にタスクバーのインジケータに稼動中を示すアイコンが表示されています。

Hide image
10InterBaseサーバー稼動

図10 InterBaseサーバーが稼動しているアイコン

今後InterBaseを使ったプログラムを扱う際は、必ず稼動を確認します。InterBaseサーバーを止めるときは、インジケータのアイコンを右ボタンクリックして「シャットダウン(S)」を選択します。

Hide image
11InterBaseシャットダウン

図11 InterBaseサーバーシャットダウン

    IBConsoleでデータベースの作成

InterBaseサーバーを起動しただけだから、まだ何もできていないのよね。ここからがきっと難しいんだわ。教えて、高橋先生!

高橋先生:作業をしていけば作成できるから、そう難しく考えなくて大丈夫。今度使うツールは「IBConsole」だよ。スタートメニューから起動してみてね。IBConsoleはデータベースのツールがいろいろ入っていて、データベースを作ったりSQLを実行することができる。

ナッキー:どんな流れで、データベースを作成するんですか?

高橋先生:ローカルサーバーに接続して、データベースを作成する。次にSQLを使ってテーブルとフィールドを作成する。あとはデータを入力すれば完成。

ナッキー:なんだか簡単そうに聞こえます。

高橋先生:作業自体は簡単なんだよ。あとは、とにかく操作してみよう。


まずは「IBConsole」を起動してみます。Windows OSのスタートメニューで「Borland InterBase 7.5 Develper [instance = gds_db]」の「IBConsole」を起動します。

Hide image
12IBConsoleの起動

図12 IBConsoleの起動

起動できたら、ローカルサーバーに接続するんだったわね。メニューバー[サーバー(S)]の[登録(R)]をクリックします。「サーバーの登録と接続」ダイアログボックスで「サーバー情報」欄では「ローカルサーバー(L)」にチェックをつけます。「接続情報」には「ユーザー名(U):」に「SYSDBA」、「パスワード(P):」に「MASTERKEY」を入力して[OK]ボタンをクリックします。

Hide image
13サーバーの登録

図13 サーバーの登録と接続

IBConsoleの左欄に「Local Server - gds_db」が登録されます。次に、データベースを作成します。登録した「Local Server - gds_db」を選択して、メニューバー「データベース(D)」の「データベースの作成(W)...」をクリックします。すると「データベースの作成」ダイアログボックスが表示されます。

「ファイル(F):」欄の「File name(s)」の空欄をクリックするとカーソルが表示されるので、保存した居場所をドライブ名からすべて記述し、データベースの名前を「PROFILE.DB」にします。たとえばMy Documentsの「Borland Studio Projects」に保存したい場合は「C:\Documents and Settings\nacky\My Documents\Borland Studio Projects\PROFILE.DB」となります。

Hide image
14データベースの作成

図14 データベースの作成

次に「オプション」欄の「Dafault Character Set」項目に「SJIS_0208」を選択します。これで使う文字列の種類を限定できます。「エリアス(A):」欄に「PROFILE.DB」と入力して、[OK]ボタンをクリックします。

一挙に項目が並びますね。赤い×が付いているときは「PROFILE.DB」をダブルクリックして緑の点をつけます。

次にテーブルを作成します。「PROFILE.DB」の下にある「Tables」を選択して、右側の空欄で右ボタンをクリックして、[作成(C)]を選択します。

Hide image
15テーブルの作成

図15 テーブルの作成

すると、「テーブルエディタ」が表示されます。「テーブル名(T)」欄に「PROFILE」を入力して、右側の[フィールドの追加(A)]ボタンをクリックします。

Hide image
16テーブルエディタ

図16 テーブルエディタ

次は「フィールドプロパティエディタ」ダイアログボックスが表示されます。

この画面でフィールドを1つずつ追加します。まず「名前」欄に「ID」と入力して、「フィールドの種別」に「特定のデータ型(T)」を選択します。新たに表示される[データ型の編集]ボタンをクリックします。

Hide image
17フィールドプロパティエデ

図17 フィールドプロパティエディタ

「データタイプ」ダイアログボックスが表示されます。「SQLタイプ」のコンボボックスで「INTEGER」が選択されていることを確認して[OK]ボタンをクリックします。

Hide image
18データタイプ

図18 データタイプ

「フィールドプロパティエディタ」ダイアログボックスに戻ったら、画面左下の「NOT NULL」にチェックをつけて、IDの値入力を必須とします。完成したら[OK]ボタンをクリックします。

Hide image
19フィールドプロパティエデ

図19 フィールドプロパティエディタの設定

「テーブルエディタ」ダイアログボックスに戻ったら、プライマリキーを設定します。これはレコードがダブっていないかチェックするなどのための「キー」となるフィールドを定めています。メインとなるキーなので「PRIMARY」を訳して「主(しゅ)キー」とか、そのまま「プライマリキー」などと呼ぶんですって。「ID」が選択されていることを確認して、画面右下の[現在のフィールドを追加(A)]ボタンをクリックします。

Hide image
20プライマリキーの追加

図20 プライマリキーの設定

次は「FULLNAME」フィールドです。「テーブルエディタ」ダイアログボックスで、右側の[フィールドの追加(A)]ボタンをクリックします。「フィールドプロパティエディタ」ダイアログボックスの「名前」欄に「FULLNAME」と入力して、「フィールドの種別」欄で「特定のデータ型(T)」をクリックします。表示される[データ型の編集]ボタンをクリックして「データタイプ」ダイアログボックスを表示します。「SQLタイプ」欄は「VARCHAR」を選択します。

Hide image
21データタイプ文字列の場合

図21 データタイプ、文字列の場合

そうすると、設定項目が増えます。キャラクタセットは「SJIS_0208」を選択して、文字長を「16」にします。確認して、[OK]ボタンをクリックします。「フィールドプロパティエディタ」ダイアログボックスに戻ったら「NOT NULL」はチェックをつけずに[OK]ボタンをクリックします。「FULLNAME」フィールドが作成できました。

同様にしてほかのフィールドを設定します。

名前

SQLタイプ

その他

NOT NULL

ADDRESS

VARCHAR

キャラクタセット:

SJIS_0208

文字長:128

なし

BIRTHDAY

DATE

なし

MALE

BOOLEARN

なし

PET

BOOLEARN

なし


Hide image
22フィールド完成

図22 フィールド完成

「内容」欄を確認して、[OK]ボタンをクリックします。もしも、どこか間違っていたり確認したい場合はフィールドを選択して、画面右側の[Edit Field]ボタンをクリックして設定を確認します。

うまく作成できたことを確認します。IBConsoleの画面で左欄の「PROFILE.DB」の下にある「Tables」項目を選択します。右欄に作成したテーブル名「PROFILE」とOwner名「SYSDBA」が表示されています。

Hide image
23テーブルの確認

図23 テーブルの確認

右欄のテーブル名「PROFILE」をダブルクリックして、作成したフィールド名を確認したら、[閉じる](×)ボタンで閉じておきます。次に「Indexes」項目を選択すると、右欄には「RDB$PRIMARY1」やその設定が表示されています。手順によっては末尾の数値が「2」や「3」になる場合がありますが、問題はありません。右欄の「RDB$PRIMARY1」をダブルクリックすると、プライマリキーの設定を表示します。下欄の項目名が「ID」になっていることを確認します。確認できたら[閉じる](×)ボタンで閉じておきます。

試しにデータを入力してみましょうか。

もう1度左欄の「Tables」項目を選択して、右欄のテーブル名「PROFILE」をダブルクリックします。「Properties for PROFILE」ダイアログボックスで「データ」タブをクリックして表示を切り替えます。1行目にフィールド名が並び、下に「<null>」と書かれた枠が並びます。

Hide image
24データページ

図24 データページ

枠をクリックして、カーソルが表示されたら文字を入力することができます。「ID」フィールドには「1」、ほかのフィールドは自分のデータを入力します。「FULLNAME」フィールドは姓名を入力して、「ADDRESS」フィールドは「東京」のように略して記述します。「BIRTHDAY」フィールドは「1900/1/1」のように西暦で、間を「/」出区切って記述します。「MALE」フィールドは男性なら「True」、女性なら「False」を入力します。「PET」フィールドはペットを飼っていたら「True」、そうでなければ「False」を入力します。

Hide image
25データの入力

図25 データ入力

全部入力できたらキーボードの下矢印キーを押すか、画面下部分で「レ」アイコンの付いた[レコードの登録]ボタンをクリックして登録を完了します。入力しただけで安心していてはレコードの登録は完了しないんですって。間違って登録した場合は「-」のアイコンが付いた[レコードの削除]ボタンで削除することもできます。

Hide image
26レコード登録

図26 レコード登録

これで、「PROFILE.DB」データベースと「PROFILE」テーブルは完成しました。「Properties for PROFILE」ダイアログボックスとIBConsoleは、それぞれ[閉じる](×)ボタンで終了します。

    dbExpressでデータベースを使う

思ったより、簡単にデータベースができちゃいましたね。いよいよこのデータベースを使ってプログラムを作るんですね。

高橋先生:プログラムは新たに作ったほうが早いから、以前のアンケートプログラムはそのまま置いておこう。既存のプロジェクトを開くのではなくて、新規作成するよ。

ナッキー:前回も結構大変だったけど、今回はじめから作るのも大変なんじゃないですか?

高橋先生:データベースを使えば簡単だよ。

ナッキー:どうやってプログラムでデータベースを使ったらいいんですか?

高橋先生:大抵、便利なコンポーネントがあるから簡単にできるものなんだよ。データベースを使うにもコンポーネントがある。いろいろなコンポーネントがあって選べるんだけど、今回はdbExpressカテゴリのコンポーネントを使おう。

ナッキー:コンポーネントを使えば、データベースを使うのにも、プロパティとかメソッドとかでできちゃうんですか?

高橋先生:そういうこと。コード上でも扱いやすい。はじめに「TSQLConnection」コンポーネントを配置する。InterBaseサーバーの説明で「接続」という言葉が出てきたけれど、その接続を担うのがTSQLConnectionコンポーネントだ。次は「TSimpleDataSet」コンポーネントを配置する。データの取得や変更内容をためておくことが役目だよ。

ナッキー:なーんだ。1つのコンポーネントだけでできるわけじゃないんだ。コンポーネントの組み合わせを覚えなくちゃならないのね。

高橋先生:さすがにデータベースをプログラムに持ってくるのは複雑だから、少しずつコンポーネントを分担しているんだ。フォーム上に表示するには、まだコンポーネントが必要だ。「Data Access」カテゴリの「TDataSource」コンポーネントを配置する。データを持つTSimpleDataSetコンポーネントと表示用のコンポーネントの間を取り持っている。そして「Data Controls」カテゴリの様々な表示用のコンポーネントを配置して、プロパティを設定するとフォーム上にデータが表示できる。

ナッキー:へぇ、いっぱいコンポーネントが必要なんですね。

高橋先生:でも、ある技を使うとそれほど大変じゃないから安心してやってみてね。


本当に簡単なのかな?とにかくプロジェクトを新規作成します。Turbo Delphiを起動して、メニューバーの「ファイル(F)|新規作成(N)|VCLフォームアプリケーション-Delphi for Win32(V)」を選択します。

フォームにはたくさんコンポーネントを配置する予定なので、フォームを大きくしておきます。

Hide image
28フォームを大きく

図27 フォームを大きく

まずは接続用のTSQLConnectionコンポーネントですね。コンポーネントパレット「dbExpress」カテゴリにあります。「dbExpress」カテゴリは一覧の下のほうにあるのでスクロールして探して配置します。dbExpressのコンポーネントは、画面に表示されない非ビジュアルコンポーネントです。設計時にアイコンが表示されるだけなので、どこに配置してもかまいません。

Hide image
29TSQLConnectionの配置

図28 TSQLConnectionの配置

プロパティを設定しながら進めます。TSQLConnectionコンポーネントをダブルクリック、もしくは右ボタンクリックして「接続の設定(D)...」を選択します。そうすると「dbExpress接続」ダイアログボックスが表示されます。ツールバーで「+」アイコンのついた[接続の追加]ボタンをクリックします。さらに「接続名の新規追加」ボックスで「ドライバ名(D)」に「InterBase」、「接続名(C)」に「PROFILEDB」を入力して[OK]ボタンをクリックします。

Hide image
29接続の追加ボタンをクリッ

図29 接続の追加ボタンをクリックして接続名の新規追加を設定

「dbExpress接続」ダイアログボックスに戻ったら、「PROFILEDB」が選択されていることを確認します。右欄の「接続の設定(S)」で「Database」にIBConsoleで作った「PROFILE.DB」を「C:\Documents and Settings\nacky\My Documents\Borland Studio Projects\PROFILE.DB」のようにドライブ名から記述します。次に文字の種類を限定するために「ServarCharSet」に「SJIS_0208」を入力します。できたら[OK(O)]ボタンをクリックします。

Hide image
30Database項目の設定_rep

図30 Database項目の設定

もう少しプロパティを設定します。データベースサーバーへのログイン画面が出ると、面倒なので表示しないようにします。画面左下のオブジェクトインスペクタ、プロパティページで「データベース」カテゴリの[+]ボタンをクリックして展開します。「LoginPrompt」プロパティに「False」をセットします。次に接続できるか確認します。同じく「データベース」カテゴリの「Connected」プロパティに「True」をセットしてみます。エラーが出ず「True」になれば接続完了です。エラーが出たら「PROFILEDB」にセットした「Database」のデータベース名に間違いがないか、InterBaseサーバーは稼動中かどうか確認してエラーを解消します。

SQLConnection1

カテゴリ名

プロパティ名

設定値

データベース

LoginPrompt

False

データベース

Connected

True


次にデータ取得の「TSimpleDataSet」コンポーネントです。画面右下のツールパレットで「dbExpress」カテゴリのTSimpleDataSetコンポーネントを配置します。こちらも実行時に表示されない非ビジュアルコンポーネントなので好きな場所に配置します。続けてプロパティ設定をします。画面左下のオブジェクトインスペクタ、プロパティページで「リンク」カテゴリの「Connection」プロパティに「SQLConnection1」、「DataSet」プロパティは先頭の[+]ボタンをクリックして展開します。新たに表示されるプロパティで「CommandType」プロパティを「ctTable」にしてから、「CommandText」プロパティを「PROFILE」にします。手順を逆にすると設定できません。うまく設定できたことを確かめるために「その他」カテゴリの「Active」プロパティを「True」にしてみます。エラーが出なければ、うまく設定できています。

SimpleDataSet1

カテゴリ名

プロパティ名

設定値

リンク

Connection

SQLConnection1

リンク・DataSet

CommandType

ctTable

リンク・DataSet

CommandText

PROFILE

その他

Active

True


次にTSimpleDataSetコンポーネントをダブルクリック、もしくは右ボタンクリックして「項目の設定(T)...」を選択します。「項目エディタ」という小さな枠が表示されます。白い空欄の上で右ボタンクリックして「すべての項目の追加(F) Ctrl+F」を選択します。そうするとPROFILE.DBで設定したフィールド名が一覧になります。これを「静的項目コンポーネント」といいます。

Hide image
31項目エディタ

図31 すべての項目の追加

できたら「ID」を選択して、キーボードの「Sift」キーを押しながら「PET」まですべて選択します。そして選択した項目をフォームの左上のほうへドラッグします。

Hide image
32コンポーネントをドラッグ

arrow

Hide image
32コンポーネントの配置

フィールド名をドラッグして放すと

コンポーネントが配置される

図32 コンポーネントの配置

わあ!一度にコンポーネントを配置できました。これが高橋先生の言っていた「技」なのね。配置できたコンポーネントはそれぞれツールパレットの「Data Controls」カテゴリにある「TDBEdit」コンポーネントなどです。そのほかに「DataAccess」カテゴリの「TDataSource」コンポーネントも追加されています。

さらに、もう1つ表示用のコンポーネントを配置します。ツールパレット「Data Controls」カテゴリの「TDBGrid」コンポーネントを選択して、フォームの下のほうへ配置して、サイズを調整します。プロパティも設定します。「リンク」カテゴリの「DataSource」プロパティに「DataSource1」をセットします。

DBGrid1

カテゴリ名

プロパティ名

設定値

リンク

DataSource

DataSource1


フォームやコンポーネントのサイズを調整します。特に住所を表示している「DBEdit3」の幅が広いので、オブジェクトインスペクタの「Width」プロパティを使って短くしたほうが簡単に小さくできます。SimpleDataSet1コンポーネントで「Active」プロパティを「True」のままにしておくと、設計中もデータを参照しながら作業できますね。完成したら保存して実行してみます。ツールバーの[すべて保存]ボタンをクリックします。ユニットは「FormProfileDB」、プロジェクトは「ProfileDB」とつけて保存します。次にツールバーの[実行]ボタンをクリックして、実行してみます。

Hide image
33完成図

図33 完成図

無事に動いたら[閉じる](×)ボタンで終了します。

ナッキー:思ったより簡単にできてびっくりです。

高橋先生:プログラムを作るのに、今回はコードを書いていないんだ。データベースを表示するだけならこの方法で充分なプログラムになるね。

ナッキー:プログラムを作る部分はあんまり時間がかかりませんでした。でも表示するだけで終わりじゃないんですよね。

高橋先生:ほかにももう少し付け足して、データベースについてもより知ってもらおう。

ナッキー:次回に続くんですね。

高橋先生:前回やったプログラムに近づけるために、もう少しがんばってみよう。


ナッキーの「Turbo Delphiはじめて奮戦記」

Prev | Next | Index


Server Response from: ETNASC03