Data Binding 奥が深い

 

今日は、データベースとの接続について書こうと思ったんですが、Data Bindingはデータベースを
定義するためのウィンドウではありませんでした。サーバーが返す値をページに書き込むための
ウィンドウです。Server Behaviorsも同じようにサーバーの値を設定しますが、使い方が違い、
Data Binding は主にタグの属性値にサーバーの値を設定するためにあるようです。

ここからデータベース用語が出てくるんですが、説明できる範囲で説明します。データベースは
自分で勝手に勉強してるので、用語の説明が間違っている可能性があります。(^^;

また、ここの説明はASPを前提に書いているので、他の処理言語では操作が若干違うので注意して下さい。


Data Bindings

ということで、2日目に新機能として紹介したData Bindingウィンドウです。設定できる項目を一つ一つ説明します。

データバインディング


RecordSet( Query )

この機能は、データベースのデータを参照するための定義を記述します。Query とは、データベースに
対してデータの取得、変更、挿入・削除などの指示を与えることです。 ここで指示できるのは、データの
取得のみでその他の指示は、Server Behavior で設定します。データの取得の設定には、Simple モードと
Advanced モードの2種類があります。


RecordSet( Query ) Simple モード

このモードは、簡単な設定で、データベースからデータの取得が設定できます。

Name データ取得につける名前 これは、スクリプト内の変数に使われるので、半角アルファベットで指定します。
Connection 接続するデータベース。「Define」ボタンを押すと、昨日説明したダイアログが表示され、データベースの定義が出来ます。
Table データベースから取得するテーブル
Columns テーブルから取得する項目を指定します。Allはすべてで、Selected で抜き出す項目が選択できます。Selectedを使うと、日本語の項目が文字化け指定しますので、注意して下さい。
Filter

データの取得に条件を設定します。リストボックスで、条件を設定する項目を選択します。

Sort 取得するデータのソート条件を設定します。リストボックスで、ソートしたい項目を選択します。
Test 現在の条件で、データを取得し、取得結果を表示します。
Advanced Advancedモードに切り替えます。データの取得方法によっては、Simpleモードに戻れない場合があります。

レコードセットの定義

設定を行うと、ページ内にデータを取得するスクリプトが記述されます。
<%
set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = "dsn=iMode;"
Recordset1.Source = "SELECT * FROM imode ORDER BY 番号 ASC"
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 3
Recordset1.Open
Recordset1_numRows = 0
%>


RecordSet( Query ) Advanced モード

Advancedモードにすると、SQL文を使って設定することが出来ます。SQL文を知っている方は
こっちで設定する方がわかりやすいでしょう。 また、再設定する場合は、 Advancedモードが
表示されます。

Name データ取得につける名前 これは、スクリプト内の変数に使われるので、半角アルファベットで指定します。
Connection 接続するデータベース。「Define」ボタンを押すと、昨日説明したダイアログが表示され、データベースの定義が出来ます。
SQL データを取得するためのSQL文を記述します。
Variables SQL文で変数を使いたい場合に、変数の設定を記述します。Default Value は初期値、Run-time Valueはサーバーで取得するときの値を設定します。値の設定は、スクリプトにあった記述を行って下さい。
Database Items Connection で指定したデータベースの内容がツリー形式で表示されます。
Add to SQL SQL文に定型文を挿入することが出来ます。 挿入する場合は、Database Itemsから挿入したい項目を選択し、選択した項目にあった「SELECT」、「WHERE」、「ORDER BY」のいずれかのボタンを押します。
Test 現在の条件で、データを取得し、取得結果を表示します。
Simple Simpleモードに切り替えます。SQL文の記述方法が複雑な場合は、Simpleモードに切り替えられない場合があります。

レコードセットの定義(詳細)

設定を行うと、ページ内にデータを取得するスクリプトが記述されます。
<%

Dim Recordset1__Tomohiro
Recordset1__Tomohiro = "5"
if(Request.Form("tomohiro") <> "") then Recordset1__Tomohiro = Request.Form("tomohiro")

%> <%
set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = "dsn=iMode;"
Recordset1.Source = "SELECT * FROM imode WHERE 番号 = " + Replace(Recordset1__Tomohiro, "'", "''") + " ORDER BY 番号 ASC"
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 3
Recordset1.Open
Recordset1_numRows = 0
%>


Command( Stored Procedure )

データの取得にストアドプロシージャを使います。ストアドプロシージャとは、SQL文だけでなく、SQL文以外の処理も記述された
データの取得方法で、単純なSQL文だけでは、データが取得できない場合に用いられます。 ストアドプロシージャの使い方までは
手が回らないので、ここは省略します。(^^;


ということで、次のページ


TOP > Dreamweaver徹底活用 > UltraDev使用日記 > Data Binding、奥が深い