Symfoware/RDBのデータベースに接続し、データを参照する以下のアプリケーションの作成方法について説明します。
ASPアプリケーション
ASP.NETアプリケーション
ASPは、既存のHTMLファイルの拡張子の“.htm”または“.html”を“.asp”に変えるだけで簡単に作成できます。ファイルの拡張子が“.asp”のファイルはテキストファイルであり、テキストエディタを使って、以下の要素を自由に記述することができます。
テキスト
HTMLタグ
スクリプトコマンド
ASPのスクリプトコマンドは、区切り記号によってテキストやHTMLタグと区別されます。ASPでは、スクリプトコマンドを囲む区切り記号として“<%”と“%>”を使います。
ASPのスクリプトコマンド、またはADOのAPIの詳細については、米国Microsoft社のMSDNライブラリのホームページを参照してください。
以下に、ASPアプリケーションの例を示します。
以下のサンプルコードを“Samp.asp”というファイル名で作成し、“環境設定”で定義したWebサーバのフォルダに格納します。
サンプルコード中のconstr変数に設定する接続文字列と、sqlstr変数に設定するSQL文は実行環境に合わせて変更してください。
<%@ language="vbscript" %> <!-- #include file = "adovbs.inc" --> <html> <head> <title>データの参照</title> </head> <body bgcolor="White"> <b>データの参照</b> <hr> <% consrc = "DSN=DSN01;UID=USER01;PWD=PASS01" sqlsrc = "SELECT KEY_C,DEC_C FROM SAMPLE1.TESTTBL" ' エラーを取得するためエラー発生時に処理を止めないようにする On Error Resume Next '0. Connectionオブジェクトの生成と設定 Set OBJdbConnection = Server.CreateObject("ADODB.Connection") OBJdbConnection.ConnectionString = consrc Response.Write "1.コネクション接続<br>" OBJdbConnection.Open 'エラー処理 If OBJdbConnection.Errors.Count > 0 Then Response.Write "Description = " & _ OBJdbConnection.Errors(0).Description & "<br>" Response.Write "NativeError = " & _ OBJdbConnection.Errors(0).NativeError & "<br>" Response.Write "Number = " & _ OBJdbConnection.Errors(0).Number & "<br>" Response.Write "Source = " & _ OBJdbConnection.Errors(0).Source & "<br>" Response.Write "SQLState = " & _ OBJdbConnection.Errors(0).SQLState & "<br>" End If Response.Write "2.Recordsetオブジェクトの生成<br>" Set RecordSetObj = Server.CreateObject("ADODB.Recordset") Response.Write "3.Recordsetオブジェクトを開く<br>" RecordSetObj.Open sqlsrc,OBJdbConnection,adOpenForwardOnly, _ adLockReadOnly,adCmdText 'エラー処理 If OBJdbConnection.Errors.Count > 0 Then Response.Write "Description = " & _ OBJdbConnection.Errors(0).Description & "<br>" Response.Write "NativeError = " & _ OBJdbConnection.Errors(0).NativeError & "<br>" Response.Write "Number = " & _ OBJdbConnection.Errors(0).Number & "<br>" Response.Write "Source = " & _ OBJdbConnection.Errors(0).Source & "<br>" Response.Write "SQLState = " & _ OBJdbConnection.Errors(0).SQLState & "<br>" Else Response.Write "4.データの取得(最終行まで繰り返し)<br>" Response.Write "KEY_C,DEC_C<br>" Do While Not RecordSetObj.EOF For i = 0 To RecordSetObj.Fields.Count - 1 'データの取得 Response.Write CStr(RecordSetObj.Fields(i)) + "," Next Response.Write "<br>" RecordSetObj.MoveNext Loop End If Response.Write "5.Recordsetオブジェクトを閉じる<br>" RecordSetObj.Close() Response.Write "6.コネクション切断<br>" OBJdbConnection.Close %> <hr> </body> </html>
ブラウザのアドレスにASPファイル(拡張子“.asp”のファイル)を格納したURLを指定すると実行できます。
http://Webサーバ名/ASPSamp/Samp.asp
実行結果は以下のようになります。
Symfoware/RDBのデータベースに接続するWebアプリケーションを例にして、Visual Basic .NETによるWebアプリケーションの作成方法を説明します。
以下に作成の手順を示します。なお、本手順はVisual Basic .NET Version 2002を使用しています。
Visual Studio .NETを起動します。
新しいプロジェクトを作成します。プロジェクトの種類から[Visual Basicプロジェクト]を選択し、テンプレートから[ASP.NET Webアプリケーション]を選択します。[場所]に、“環境設定”で作成したエイリアス名(例:ASPSamp)とプロジェクト名(任意 例:TestWebApl)を指定し、OKボタンを押します。
Visual Basic .NETのメニューから、[プロジェクト]-[参照の追加]を選択します。[参照の追加]画面の、[.NET]タブを選択しコンポーネントの一覧から[Microsoft.Data.ODBC.dll]を選択します。
注意
ADOの場合、[COM]タブを選択し[Microsoft ActiveX Data Objects 2.7 Library]を選択します。
Webフォームを編集します。ドキュメント(DOCUMENT)のpageLayoutプロパティをFlowLayoutに変更します。Webフォームにボタンコントロール、ラベルコントロールおよびHorizontal Ruleを貼り付け、以下のようなWebフォームを作成します。ボタンコントロールのTextプロパティを、「実行」と設定します。ラベルコントロールのTextプロパティを空文字列に設定します。
以下に上記デザインのHTMLソースのbodyタグ内を示します。
<body> <form id="Form1" method="post" runat="server"> <FONT face="MS UI Gothic"> <asp:button id="Button1" runat="server" Text="実行" Width="68px"></asp:button> <HR width="100%" SIZE="1"> <asp:label id="Label1" runat="server"></asp:label> <HR width="100%" SIZE="1"> </FONT> </form> </body>
Webフォーム上の[実行]ボタンをダブルクリックしてカーソルが移動した場所に、以下のサンプルコードを入力します。サンプルコード中のconstr変数に設定する接続文字列と、sqlstr変数に設定するSQL文は実行環境に合わせて変更してください。
Dim con As Microsoft.Data.Odbc.OdbcConnection Dim com As Microsoft.Data.Odbc.OdbcCommand Dim drd As Microsoft.Data.Odbc.OdbcDataReader Dim i As Integer Dim msgstr As String Dim constr As String = "DSN=DSN01;UID=USER01;PWD=PASS01" Dim sqlstr As String = "SELECT KEY_C,DEC_C FROM SAMPLE1.TESTTBL" Try Label1.Text = "1. コネクション接続<br>" con = New Microsoft.Data.Odbc.OdbcConnection(constr) con.Open() Label1.Text &= "2. OdbcCommandオブジェクトの生成<br>" com = New Microsoft.Data.Odbc.OdbcCommand(sqlstr, con) Label1.Text &= "3. OdbcDataReaderオブジェクトの生成<br>" drd = com.ExecuteReader Label1.Text &= "4. データの取得(最終行まで繰り返し)<br>" Label1.Text &= "KEY_C,DEC_C<br>" While drd.Read() For i = 0 To drd.FieldCount - 1 Label1.Text &= drd.GetValue(i) & "," Next Label1.Text &= "<br>" End While Label1.Text &= "5. OdbcDataReaderオブジェクトを閉じる<br>" drd.Close() Label1.Text &= "6. コネクション切断<br>" con.Close() con.Dispose() com.Dispose() 'Error処理 Catch ex As Microsoft.Data.Odbc.OdbcException For i = 0 To ex.Errors.Count - 1 msgstr &= ex.Errors(i).Message & "<br>" msgstr &= "SQLSTATE: " & ex.Errors(i).SQLState & "<br>" Next Label1.Text = "ODBC Error Message<br>" & msgstr Catch ex As Exception msgstr = ex.Message Label1.Text = "Error Message<br>" & msgstr End Try
Visual Basic .NETのメニューの、[デバッグ]-[開始]で実行します。
また、メニューの[ビルド]-[TestWebAplのビルド]でWebアプリケーションをビルドし、ブラウザのアドレスに以下のURLを指定してください。
http://Webサーバ名/ASPSamp/TestWebApl/WebForm1.aspx
[実行]ボタンを押すとSymfowareに接続し、結果を表示します。
開発用のサーバと実行用のサーバが違う場合には、以下の方法で作成したプロジェクトを実行用のサーバに配置します。
Visual Basic.NETのメニューから[プロジェクト]-[プロジェクトのコピー]を選択します。
[プロジェクトのコピー]ダイアログボックスの[ターゲット プロジェクトフォルダ]に、実行用のWebサーバ名とプロジェクトフォルダ名(任意 例:TestWebApl)を次の例のように入力します。
http:// Webサーバ名/TestWebApl
[コピー]の以下のいずれかを選択します。
このアプリケーションの実行に必要なファイルのみ
すべてのプロジェクトファイル
ソースプロジェクトフォルダのすべてのファイル
[OK]ボタンをクリックしてコピーを開始します。