SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Delphi for PHP はじめの3歩(AD)

Delphi for PHP はじめの3歩 その3

Delphi for PHPでビジュアルPHPプログラミング

  • このエントリーをはてなブックマークに追加

Delphi for PHPは、Windows向けビジュアル開発ツールとして定評のあるDelphiの開発スタイル、つまり、コンポーネントをドラッグ&ドロップ操作で配置し、プロパティとイベントを設定して開発するスタイルで、PHPによるWebアプリケーションを開発できるツールです。 Delphi for PHPの基本的な使い方を紹介する3回シリーズの最終回では、データベースを使ってみます。

  • このエントリーをはてなブックマークに追加

データベース開発を紹介する前に新バージョンのお知らせ

 この記事を執筆している時点でちょうどDelphi for PHPの新バージョン「Delphi for PHP 2.0」が発表されました。以前も書きましたが、残念ながらバージョン1.0は英語版のみでした。しかし、バージョン2.0では、日本語を含むマルチランゲージのユーザーインターフェースをサポートするようになりました。やはり日本語のユーザーインターフェースだと直感的に使えますから、使い勝手は格段によくなります。

図1 Delphi for PHP 2.0
図1 Delphi for PHP 2.0

 ここでは、2.0の新機能を紹介しておきましょう。

これまでの記事

ビジュアルデザイナ

 ビジュアルデザイナには、従来のPHPデザイナに、HTMLデザイナとテンプレートデザイナが加わりました。PHPフォームにコンポーネントをドラッグ&ドロップできるだけでなく、HTMLにボタンやテキストボックスなどのHTML要素をドラッグ&ドロップしたり、HTMLテンプレートにPHPコンポーネントをドラッグ&ドロップできるようになりました。

 テンプレートフォームを使うと、HTML部分をHTMLデザイナに任せて、PHP部分のみをDelphi for PHP 2.0で開発するような分業も可能になります。

コードエディタ

 コード入力時の支援機能も強化されています。Error Insightは、入力中のコードの構文エラーを自動検出して表示する機能です。コンパイルという作業のないダイナミック言語の場合、スペルミスの発見は時として困難なので、この機能は重宝します。

 このほかに、同期編集やコード折りたたみなど、コードの修正やナビゲートを容易にする機能が追加されています。

新しいコンポーネント

 Zendフレームワークをカプセル化してビジュアル開発を可能にしたコンポーネントやOracleネイティブコンポーネントなどが追加されています。また、任意のPHPフレームワークやライブラリなどをカプセル化できるので、Delphi for PHPのビジュアル開発のメリットを、PHPオープンソース資産全般に広げることができます。

データベース開発機能

 今回紹介するデータベース機能は、1.0のものですが、これに加えて、新しいデータベース開発機能が2.0には搭載されています。まず、サポートデータベースが大幅に拡張されています。データエクスプローラは、データベースサーバ固有のスキーマオブジェクトを扱うことができますが、従来のInterBaseとMySQLに加えて、新たにDB2、Oracle、Informix、Microsoft SQL Server、Sybase、SQL Anywhere、PostgreSQLに対応しました。これらのデータベースアプリケーションは、ドラッグ&ドロップで、ほとんどコーディングすることなく基本機能を開発できます。

 Delphi for PHP 2.0の製品情報は、http://www.codegear.com/jp/products/delphi/phpをご覧ください。Delphi for PHP 2.0の新機能の詳細については、CDNに掲載された記事「Delphi for PHP 2.0の新機能」を参照してください。

Delphi for PHPのデータベースアクセス 1

 では、本編に戻り、Delphi for PHPのデータベース開発機能について紹介しましょう。

 Delphi for PHPのコンポーネントフレームワークVCL for PHPには、データベースアクセスをサポートするコンポーネントが揃っています。これらのコンポーネントを使えば、ドラッグ&ドロップの操作で、基本的なデータベースアクセス機能を実装できます。

 まずは「習うより慣れろ」で、データベース接続を実践してみましょう。ここでは、Delphi for PHPに付属しているInterBase Developer Editionを使います。InterBaseは、軽量RDBMSで、PHPによるWebアプリケーション用には最適なデータベースです。

 InterBaseが起動している状態で、以下の操作を行います。

Data Explorerの設定

 Delphi for PHPのIDEの右側に表示されている「Project Manager」ペインの下にあるタブ[Data Explorer]をクリックして、データエクスプローラ(Data Explorer)を表示します(図2)。

図2 データエクスプローラ
図2 データエクスプローラ
新バージョン情報
 バージョン1.0では、MySQLとInterBaseの2つだけをサポートしていたデータエクスプローラですが、新バージョンでは、この2つに加えて、DB2、Oracle、Informix、Microsoft SQL Server、Sybase、SQL Anywhere、PostgreSQLをサポートするようになりました。

 ここで、接続するデータベース、この場合は、InterBaseを選択してマウスの右ボタンをクリックし、[Register Database]メニューを選択します。表示されたダイアログボックスに以下のように入力します。

Edit1
項目
Database type InterBase
Connection Name myinterbase(識別しやすい任意の名前)
Host Localhost
Database Name (データベースファイルを指定します。例えば、InterBaseをインストールしたディレクトリ下の、examples\database\employee.gdb)
Username (ユーザー名)
Password (パスワード)
図3 データベース接続の設定
図3 データベース接続の設定

 入力が終わったら[OK]ボタンをクリックして、設定内容を保存します。すると、Data Explorerの[InterBase]項目下に、作成したmyinterbaseが表示されます。項目を開いていくと、myinterbaseで指定したデータベースのテーブル一覧が表示されます。

図4 テーブル一覧の表示
図4 テーブル一覧の表示

ドラッグ&ドロップでデータベースアプリケーションを作る

 ここまで設定ができてしまえば、基本的なデータベースアプリケーションを作成する手順は大変シンプルです。[File|New|Application]で新規アプリケーションを作成したら、Data Explorerで表示したいテーブルを選択してマウスをドラッグし、フォーム上にドロップします。

図5 テーブルをドラッグ
図5 テーブルをドラッグ

 すると、フォーム上には、データベースにアクセスするためのコンポーネント、グリッドなどが配置されます。

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

 必要なプロパティは既に設定されているので、プログラムを実行するだけで、データを表示できます。

図7 プログラムの実行
図7 プログラムの実行

コンポーネントの解説

 自動的に配置されたコンポーネントについて、簡単に解説しましょう。

Database

 データベース接続を担当するコンポーネント。Data Explorerで指定した接続設定が、各プロパティに指定されます。

Table

 データベーステーブルを扱うコンポーネント。Databaseプロパティに接続するデータベースへの接続設定を行ったDatabaseコンポーネントを指定します。TableNameプロパティに扱うテーブルの名前を指定します。

 同じようなコンポーネントにQueryコンポーネントがありますが、こちらは、テーブルではなくクエリーをSQLプロパティに指定します。

Datasource

 TableやQueryといったデータセットをグリッドやエディットといったデータ表示/編集用のコンポーネントと結び付けます。DataSetプロパティに、TableやQueryコンポーネントを指定します。

 多くのコントロールには、Datasourceプロパティがあり、この値によって、Datasourceコンポーネントとの関連を定義します。

DBGrid

 データを表形式で表示するコントロールです。AJAXを活用して、すばやいレスポンスでデータを表示・編集できます。Datasourceプロパティに指定したDatasourceコンポーネントに結び付けられたデータセットを表示します。

Delphi for PHPのデータベースアクセス 2

Editを使ってデータ表示

 今度は、グリッドを使わずに1ページに1件のデータを表示するようなフォームを作成してみましょう。データの表示や編集には、LabelやEditを利用できます。これらのコンポーネントには、DatasourceプロパティとDataFieldプロパティがあり、この2つ値を設定することで、データを表示・編集できるようになります。

 また、レコードの移動を行うリンクを追加するには、Paginatorコンポーネントを使います。このコンポーネントを用いれば、ノンコーディングでレコード移動を行うページング機能を実装できます。

 では、[File|New|Application]で新規アプリケーションを作成します。新規フォームが表示されたら、データエクスプローラに移動します。

 データエクスプローラのツールバーには、4つのボタンがあります。このボタンは、データエクスプローラからフォームに項目をドラッグ&ドロップしたときに作成するコントロールを指定するオプションです。

Label1
ボタン 説明
 
テーブル項目をドロップしたときに、そのテーブルのデータを表示するDBGridを配置します。
 
テーブル項目をドロップしたときに、そのテーブルのデータを表示するDBRepeaterを配置します。DBRepeaterは、特殊なパネルで、この上に配置したDatasourceに関連付けられたコントロールにデータを表示し、複数レコード分繰り返して表示します。フォームに1つのDBRepeaterを配置すると、実行時には複数レコード分のDBRepeaterパネルが表示されます。
 
フィールドをドロップしたときに、そのフィールドのデータを表示するLabelを配置します。
 
フィールドをドロップしたときに、そのフィールドのデータを表示するEditを配置します。フィールドは編集できます。
新バージョン情報
 Delphi for PHP 2.0では、この機能が大幅拡張され、より多くのコンポーネントをデータエクスプローラからドラッグ&ドロップできるようになりました。2.0では、配置するコンポーネントの種類をドロップダウンリストから選択します。

 ここでは、Editをクリックします。

 InterBaseのサンプルデータベースから[CUSTOMER]テーブルを選択します。ツリーを開いて、[CUST_NO]を選択します。

図8 CUST_NOを選択
図8 CUST_NOを選択

 選択した、[CUST_NO]項目をフォームにドロップします。すると、Database、Table、DatasourceとCUST_NOのデータを表示するように設定されたEditが配置されます。

図9 [CUST_NO]をフォームにドロップ
図9 [CUST_NO]をフォームにドロップ

 LabelとEditを使って、CUSTOMERテーブルのいくつかの項目を表示するようにしてみましょう。図10のようにコンポーネントを配置します。

図10 フォームの設計
図10 フォームの設計

 配置したコンポーネントのプロパティは、それぞれ次のように設定しています。

Label1
プロパティ
Caption 顧客番号
Label2
プロパティ
Caption 顧客名
Label3
プロパティ
Caption 電話番号
Label4
プロパティ
Caption 住所
Edit1
プロパティ
DataField CUSTOMER
DataSource dsCUSTOMER1
Text CUSTOMER
Edit2
プロパティ
DataField PHONE_NO
DataSource dsCUSTOMER1
Text PHONE_NO
Edit3
プロパティ
DataField ADDRESS_LINE1
DataSource dsCUSTOMER1
Text ADDRESS_LINE1
Edit4
プロパティ
DataField ADDRESS_LINE2
DataSource dsCUSTOMER1
Text ADDRESS_LINE2

ページング機能を使う

 次に、ツールパレットの[Data Control]カテゴリから、DBPaginatorをフォームに配置します。このコンポーネントは、指定したDatasourceのページング機能を提供します。例えば、ここでDatasourceにdsCUSTOMER1を指定すると、配置したEditに表示されるレコードは、DBPaginatorで選んだレコードになります。

DBPaginator1
プロパティ
CaptionFirst 最初へ
CaptionLast 最後へ
CaptionNext 次へ
CaptionPrevious 前へ
DataSource dsCUSTOMER1
図11 完成したフォーム
図11 完成したフォーム

 では、アプリケーションを実行してみましょう。最初のレコードのデータがフォームに表示されます。[次へ]をクリックすると、次のレコードが表示されます。

図12 実行結果
図12 実行結果

おわりに

 3回にわたってDelphi for PHPによるPHP開発を紹介してきました。もうまもなく、新バージョンのDelphi for PHP 2.0のトライアル版も入手できるようになるでしょう。Delphi for PHPは、PHP開発に新しいビジュアル手法を取り入れた画期的なツールで、一度使ってみると「面白い!」と実感できます。ぜひお試しください。

関連リンク

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/2447 2008/08/20 13:35

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング