Dreamweaver での ASP コマンドによるデータベースの修正

最終更新日 : 2024年4月25日

ここでは、Dreamweaver で ASP コマンドを使用して、データベースの修正やストアードプロシージャの追加と実行を行う方法について説明します。

メモ

Dreamweaver 以降では、ユーザーインターフェイスが簡素化されています。 そのため、この記事で説明されているオプションの一部が Dreamweaver 以降には存在しない場合があります。 詳しくは、こちらの記事を参照してください。

ASP コマンドオブジェクトについて

ASP コマンドオブジェクトは、データベースで何らかの操作を実行するサーバーオブジェクトです。このオブジェクトには、レコードセットを返すSQL文や、データベースのレコードを挿入、更新、削除するSQL文など、有効なSQL文を含めることができます。SQL文がテーブル内の列を追加または削除する場合、コマンドオブジェクトはデータベースの構造を変更できます。コマンドオブジェクトを使用して、データベース内のストアドプロシージャを実行することもできます。

コマンドオブジェクトは再利用可能です。つまり、アプリケーションサーバーは、オブジェクトの単一のコンパイル済みバージョンを再利用して、コマンドを何回も実行できます。次のVBScript文のように、Commandオブジェクトの Prepared プロパティをtrueに設定することで、コマンドを再利用可能にできます:

mycommand.Prepared = true

コマンドが数回以上実行されることがわかっている場合、オブジェクトの単一のコンパイル済みバージョンを使用することで、データベース操作をより効率的にできます。

メモ

すべてのデータベースが、「Prepared」コマンドをサポートしているわけではありません。 データベースがこれをサポートしていない場合、このプロパティをtrueに設定するとエラーが返されることがあります。コマンドを準備するリクエストを無視して、Preparedプロパティをfalseに設定することもあります。

コマンドオブジェクトはASPページのスクリプトによって作成されますが、Dreamweaverを使用すると、ASPコードを一行も記述せずにコマンドオブジェクトを作成できます。

ASP コマンドによるデータベースの修正

Dreamweaverを使用して、データベース内のレコードを挿入、更新、削除するASPコマンドオブジェクトを作成できます。データベースで操作を実行するSQL文またはストアドプロシージャをコマンドオブジェクトに提供します。

Dreamweaverで、コマンドを実行するASPページを開きます。
サーバービヘイビアーパネル(ウィンドウ > サーバービヘイビアー)を開き、プラス(+)ボタンをクリックして、「Command」を選択します。
コマンドの名前を入力し、編集するレコードが含まれているデータベースへの接続を選択して、コマンドで実行する編集操作(挿入、更新、削除)を選択します。

Dreamweaver は、選択した操作のタイプに基づいて SQL 文を生成します。例えば、「Insert」を選択すると、ダイアログボックスは次の例のようになります:

ASP コマンドの入力
ASP コマンドの入力

SQL ステートメントを作成します。

データベースを変更するSQL文の記述については、Transact-SQLマニュアルを参照してください。

「変数」領域を使用して SQL 変数を定義します。 名前と実行時の値を指定します。各変数のタイプとサイズを指定することで、インジェクション攻撃を防ぐことができます。

次の例は、3つのSQL変数を含むInsert文を示しています。これらの変数の値は、Variables エリアの「Run-Time Value」列で定義されているように、ページに渡されるURLパラメーターによって提供されます。

SQL 変数を 3 つ含む Insert ステートメント
SQL 変数を 3 つ含む Insert ステートメント

Size値を取得するには、DreamweaverのDatabasesパネルを使用します。Databasesパネルでデータベースを見つけて展開します。次に、作業中のテーブルを見つけて 展開します。テーブルにはフィールドのサイズが一覧表示されます。 例えば、ADDRESS (WChar 50) と表示される 場合があります。この例では、50 がサイズです。 データベースアプリケーションで サイズを確認することもできます。

メモ

数値、 ブーリアン、日付/時刻データタイプは常にサイズとして -1 を使用します。

Type 値を 決定するには、次のテーブルを参照してください:

データベースにおける型

Dreamweaver における型

サイズ

数値(MS Access、MS SQL Server、MySQL)

倍精度

-1

ブーリアン、Yes/No (MS Access、MS SQL Server、 MySQL)

倍精度

-1

日付/時刻(MS Access、MS SQL Server、MySQL)

DBTimeStamp

-1

MySQL のテキストデータタイプである char、varchar、 longtext を含む、その他すべてのタイプのテキストフィールド

LongVarChar

データベーステーブルをチェック

Text (MS Access) または nvarchar、nchar (MS SQL Server)

VarWChar

データベーステーブルをチェック

Memo(MS Access)、ntext(MS SQL Server)、または大量のテキストをサポートするフィールド

LongVarWChar

1073741823

SQL 変数のタイプと サイズの詳細については、www.adobe.com/go/4e6b330a を参照してください。

ダイアログボックスを閉じます。

Dreamweaver は、サーバーで実行されると、データベース内のレコードを挿入、 更新、または削除するコマンドを作成する ASP コードを ページに挿入します。

デフォルトでは、コードはCommandオブジェクトのPreparedプロパティをtrueに設定し、これによりコマンドが実行されるたびにアプリケーションサーバーがオブジェクトの単一のコンパイル済みバージョンを再利用するようになります。この設定を変更するには、 Code ビューに切り替えて、Prepared プロパティを false に変更します。

ユーザーがレコード データを入力できるように、HTML フォームを含むページを作成します。HTML フォームに、3つのテキストフィールド(txtCity、txtAddress、 txtPhone)と送信ボタンを含めます。フォームは GET メソッドを使用して、 コマンドを含むページにテキストフィールドの値を送信します。

ストアードプロシージャについて

データベースを変更するページの作成にはサーバービヘイビアーを使用することもできますが、ストアドプロシージャや ASP コマンドオブジェクトなどのデータベース操作オブジェクトを使用してページを作成することもできます。

ストアドプロシージャは、データベースで何らかの操作を実行する再利用可能なデータベースオブジェクトです。ストアドプロシージャには、レコードの挿入、更新、削除などを行う SQL コードが含まれています。ストアドプロシージャは、データベース自体の 構造を変更することもできます。例えば、ストアドプロシージャを使用して、テーブル カラムを追加したり、テーブルを削除したりすることができます。

ストアドプロシージャは別のストアドプロシージャを呼び出すことができ、 入力パラメーターを受け取って、出力パラメーターの形で 呼び出しプロシージャに複数の値を返すことができます。

ストアドプロシージャは、プロシージャの単一のコンパイル済みバージョンを 再利用してデータベース操作を 何回も実行できるという意味で再利用可能です。データベースタスクが 数回以上実行される場合、または同じタスクが 異なるアプリケーションによって実行される場合、ストアドプロシージャを使用してそのタスクを実行することで、データベース操作をより効率的にすることができます。

メモ

MySQLとMicrosoft Accessデータベースはストアドプロシージャをサポートしていません。

ストアドプロシージャの追加(ColdFusion)(CS6)

ストアドプロシージャを使用してデータベースを変更できます。ストアドプロシージャは、データベースに対して何らかの操作を実行する再利用可能なデータベース項目です。

ストアドプロシージャを使用してデータベースを変更する前に、ストアドプロシージャに何らかの方法でデータベースを変更する SQL が含まれていることを確認してください。データベースに作成して保存するには、データベースのドキュメントと適切な Transact-SQL マニュアルを参照してください。

Dreamweaver で、ストアドプロシージャを実行するページを開きます。
バインディングパネル(ウィンドウ/バインディング)で、プラス(+)ボタンをクリックし、「ストアドプロシージャ」を選択します。
「データソース」ポップアップメニューで、ストアドプロシージャを含むデータベースへの接続を選択します。
ColdFusion データソースのユーザー名とパスワードを入力します。
「プロシージャ」ポップアップメニューからストアドプロシージャを選択します。

Dreamweaver は自動的にパラメーターを入力します。

パラメーターを選択し、変更が必要な場合は「編集」をクリックします。

ストアードプロシージャ変数の編集ダイアログボックスが表示されます。 編集している変数の名前が「名前」ボックスに表示されます。

メモ

ストアドプロシージャの入力パラメーターにはテスト値を入力する必要があります。

必要に応じて変更を行います。
  • ポップアップメニューから方向を選択します。 ストアドプロシージャには、入力値、出力値、または入力値と出力値の両方を含めることができます。

  • ポップアップメニューから SQL タイプを選択します。 戻り変数、実行時値、およびテスト値を入力します。

ストアドプロシージャがパラメーターを受け取る場合は、プラス(+)ボタンをクリックしてページパラメーターを追加します。
メモ

各ストアドプロシージャパラメーターの戻り値に対応するページパラメーターを入力する必要があります。対応する戻り値がない限り、ページパラメーターを追加しないでください。

必要に応じて、プラス(+)ボタンを再度クリックして別のページパラメーターを追加します。

ページパラメーターを選択し、必要に応じてマイナス(-)ボタンをクリックしてパラメーターを削除するか、「編集」をクリックしてパラメーターに変更を加えます。
「次の名前のレコードセットを返す」オプションを選択し、レコードセットの名前を入力します。ストアドプロシージャがレコードセットを返す場合は、「テスト」ボタンをクリックして、ストアドプロシージャが返すレコードセットを確認します。

Dreamweaver はストアドプロシージャを実行し、レコードセットがある場合はそれを表示します。

メモ

ストアドプロシージャがレコードセットを返し、パラメーターを受け取る場合は、ストアドプロシージャをテストするために「変数」ボックスの「デフォルト値」列に値を入力する必要があります。

メモ

異なるテスト値を使用して、異なるレコードセットを生成することができます。テスト値を変更するには、「パラメーター」の「編集」ボタンをクリックしてテスト値を変更するか、「ページパラメーター」の「編集」ボタンをクリックしてデフォルト値を変更します。

Returns Status Code Named オプションを選択し、ストアドプロシージャがステータス コードの戻り値を返す場合は、ステータス コードの名前を入力します。「OK」をクリックします。

ボックスを閉じた後、Dreamweaver によって、コードがサーバー上で実行されるときにデータベース内のストアドプロシージャを呼び出す ColdFusion コードがページに挿入されます。ストアドプロシージャは、レコードの挿入などのデータベース操作を実行します。

ストアドプロシージャがパラメーターを受け取る場合は、パラメーター値を収集してストアドプロシージャを含むページに送信するページを作成できます。例えば、URL パラメーターや HTML フォームを使用してユーザーからパラメーター値を収集するページを作成することができます。

ストアドプロシージャを実行(ASP)(CS6)

ASPページでは、ストアドプロシージャを実行するためにページにコマンドオブジェクトを追加する必要があります。コマンド オブジェクトの詳細については、ASP コマンド オブジェクトについてを参照してください。

Dreamweaver で、ストアドプロシージャを実行するページを開きます。
バインディングパネル(ウィンドウ>バインディング)で、プラス(+)ボタンをクリックし、コマンド(ストアドプロシージャ)を選択します。

コマンドダイアログボックスが表示されます。

コマンドの名前を入力し、ストアドプロシージャを含むデータベースへの接続を選択してから、「タイプ」ポップアップメニューから「ストアドプロシージャ」を選択します。
データベースアイテムボックスでストアドプロシージャブランチを展開し、リストからストアドプロシージャを選択して、プロシージャボタンをクリックしてストアドプロシージャを選択します。
変数テーブルに必須パラメーターを入力します。

RETURN_VALUE 変数のパラメーターは入力する必要はありません。

「OK」をクリックします。

ダイアログボックスを閉じた後、ASP コードがページに挿入されます。コードがサーバー上で実行されると、データベース内のストアドプロシージャを実行するコマンド オブジェクトが作成されます。ストアドプロシージャは、レコードの挿入などのデータベース操作を実行します。

デフォルトでは、コードによってコマンド オブジェクトの Prepared プロパティが true に設定されます。これにより、ストアドプロシージャが実行されるたびに、アプリケーション サーバーがオブジェクトの単一のコンパイル済みバージョンを再利用できるようになります。コマンドが数回以上実行されることがわかっている場合、オブジェクトの単一のコンパイル済みバージョンを使用することで、データベース操作の効率を向上させることができます。ただし、コマンドが 1 回または 2 回しか実行されない場合、システムがコマンドのコンパイルのために一時停止する必要があるため、実際には web アプリケーションの速度が低下する可能性があります。設定を変更するには、コードビューに切り替えて、Prepared プロパティを false に変更します。

メモ

すべてのデータベースプロバイダーがプリペアドコマンドをサポートしているわけではありません。データベースがサポートしていない場合、ページを実行するときにエラーメッセージが表示される可能性があります。コードビューに切り替えて、Prepared プロパティを false に変更します。

ストアドプロシージャがパラメーターを受け取る場合は、パラメーター値を収集してストアドプロシージャを含むページに送信するページを作成することができます。例えば、URL パラメーターや HTML フォームを使用してユーザーからパラメーター値を収集するページを作成することができます。