ここでは、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 は、選択した操作のタイプに基づいて SQL 文を生成します。例えば、「Insert」を選択すると、ダイアログボックスは次の例のようになります:
データベースを変更するSQL文の記述については、Transact-SQLマニュアルを参照してください。
次の例は、3つのSQL変数を含むInsert文を示しています。これらの変数の値は、Variables エリアの「Run-Time Value」列で定義されているように、ページに渡されるURLパラメーターによって提供されます。
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 に変更します。
ストアードプロシージャについて
データベースを変更するページの作成にはサーバービヘイビアーを使用することもできますが、ストアドプロシージャや ASP コマンドオブジェクトなどのデータベース操作オブジェクトを使用してページを作成することもできます。
ストアドプロシージャは、データベースで何らかの操作を実行する再利用可能なデータベースオブジェクトです。ストアドプロシージャには、レコードの挿入、更新、削除などを行う SQL コードが含まれています。ストアドプロシージャは、データベース自体の 構造を変更することもできます。例えば、ストアドプロシージャを使用して、テーブル カラムを追加したり、テーブルを削除したりすることができます。
ストアドプロシージャは別のストアドプロシージャを呼び出すことができ、 入力パラメーターを受け取って、出力パラメーターの形で 呼び出しプロシージャに複数の値を返すことができます。
ストアドプロシージャは、プロシージャの単一のコンパイル済みバージョンを 再利用してデータベース操作を 何回も実行できるという意味で再利用可能です。データベースタスクが 数回以上実行される場合、または同じタスクが 異なるアプリケーションによって実行される場合、ストアドプロシージャを使用してそのタスクを実行することで、データベース操作をより効率的にすることができます。
MySQLとMicrosoft Accessデータベースはストアドプロシージャをサポートしていません。
ストアドプロシージャの追加(ColdFusion)(CS6)
ストアドプロシージャを使用してデータベースを変更できます。ストアドプロシージャは、データベースに対して何らかの操作を実行する再利用可能なデータベース項目です。
ストアドプロシージャを使用してデータベースを変更する前に、ストアドプロシージャに何らかの方法でデータベースを変更する SQL が含まれていることを確認してください。データベースに作成して保存するには、データベースのドキュメントと適切な Transact-SQL マニュアルを参照してください。
Dreamweaver は自動的にパラメーターを入力します。
ストアードプロシージャ変数の編集ダイアログボックスが表示されます。 編集している変数の名前が「名前」ボックスに表示されます。
ストアドプロシージャの入力パラメーターにはテスト値を入力する必要があります。
ポップアップメニューから方向を選択します。 ストアドプロシージャには、入力値、出力値、または入力値と出力値の両方を含めることができます。
ポップアップメニューから SQL タイプを選択します。 戻り変数、実行時値、およびテスト値を入力します。
各ストアドプロシージャパラメーターの戻り値に対応するページパラメーターを入力する必要があります。対応する戻り値がない限り、ページパラメーターを追加しないでください。
必要に応じて、プラス(+)ボタンを再度クリックして別のページパラメーターを追加します。
Dreamweaver はストアドプロシージャを実行し、レコードセットがある場合はそれを表示します。
ストアドプロシージャがレコードセットを返し、パラメーターを受け取る場合は、ストアドプロシージャをテストするために「変数」ボックスの「デフォルト値」列に値を入力する必要があります。
異なるテスト値を使用して、異なるレコードセットを生成することができます。テスト値を変更するには、「パラメーター」の「編集」ボタンをクリックしてテスト値を変更するか、「ページパラメーター」の「編集」ボタンをクリックしてデフォルト値を変更します。
ボックスを閉じた後、Dreamweaver によって、コードがサーバー上で実行されるときにデータベース内のストアドプロシージャを呼び出す ColdFusion コードがページに挿入されます。ストアドプロシージャは、レコードの挿入などのデータベース操作を実行します。
ストアドプロシージャがパラメーターを受け取る場合は、パラメーター値を収集してストアドプロシージャを含むページに送信するページを作成できます。例えば、URL パラメーターや HTML フォームを使用してユーザーからパラメーター値を収集するページを作成することができます。
ストアドプロシージャを実行(ASP)(CS6)
ASPページでは、ストアドプロシージャを実行するためにページにコマンドオブジェクトを追加する必要があります。コマンド オブジェクトの詳細については、ASP コマンド オブジェクトについてを参照してください。
コマンドダイアログボックスが表示されます。
RETURN_VALUE 変数のパラメーターは入力する必要はありません。
ダイアログボックスを閉じた後、ASP コードがページに挿入されます。コードがサーバー上で実行されると、データベース内のストアドプロシージャを実行するコマンド オブジェクトが作成されます。ストアドプロシージャは、レコードの挿入などのデータベース操作を実行します。
デフォルトでは、コードによってコマンド オブジェクトの Prepared プロパティが true に設定されます。これにより、ストアドプロシージャが実行されるたびに、アプリケーション サーバーがオブジェクトの単一のコンパイル済みバージョンを再利用できるようになります。コマンドが数回以上実行されることがわかっている場合、オブジェクトの単一のコンパイル済みバージョンを使用することで、データベース操作の効率を向上させることができます。ただし、コマンドが 1 回または 2 回しか実行されない場合、システムがコマンドのコンパイルのために一時停止する必要があるため、実際には web アプリケーションの速度が低下する可能性があります。設定を変更するには、コードビューに切り替えて、Prepared プロパティを false に変更します。
すべてのデータベースプロバイダーがプリペアドコマンドをサポートしているわけではありません。データベースがサポートしていない場合、ページを実行するときにエラーメッセージが表示される可能性があります。コードビューに切り替えて、Prepared プロパティを false に変更します。
ストアドプロシージャがパラメーターを受け取る場合は、パラメーター値を収集してストアドプロシージャを含むページに送信するページを作成することができます。例えば、URL パラメーターや HTML フォームを使用してユーザーからパラメーター値を収集するページを作成することができます。