今日は、データベースとの接続について書こうと思ったんですが、Data Bindingはデータベースを
定義するためのウィンドウではありませんでした。サーバーが返す値をページに書き込むための
ウィンドウです。Server Behaviorsも同じようにサーバーの値を設定しますが、使い方が違い、
Data Binding は主にタグの属性値にサーバーの値を設定するためにあるようです。
ここからデータベース用語が出てくるんですが、説明できる範囲で説明します。データベースは
自分で勝手に勉強してるので、用語の説明が間違っている可能性があります。(^^;
また、ここの説明はASPを前提に書いているので、他の処理言語では操作が若干違うので注意して下さい。
ということで、2日目に新機能として紹介したData Bindingウィンドウです。設定できる項目を一つ一つ説明します。
この機能は、データベースのデータを参照するための定義を記述します。Query とは、データベースに
対してデータの取得、変更、挿入・削除などの指示を与えることです。 ここで指示できるのは、データの
取得のみでその他の指示は、Server Behavior で設定します。データの取得の設定には、Simple モードと
Advanced モードの2種類があります。
このモードは、簡単な設定で、データベースからデータの取得が設定できます。
| 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
%>
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
%>
データの取得にストアドプロシージャを使います。ストアドプロシージャとは、SQL文だけでなく、SQL文以外の処理も記述された
データの取得方法で、単純なSQL文だけでは、データが取得できない場合に用いられます。 ストアドプロシージャの使い方までは
手が回らないので、ここは省略します。(^^;
ということで、次のページ