ページの先頭行へ戻る
Symfoware Server V10.0.0 アプリケーション開発ガイド(ODBCドライバ編)

4.3.4 アプリケーションの作成

Symfoware/RDBのデータベースに接続し、データを参照する以下のアプリケーションの作成方法について説明します。

4.3.4.1 ASPアプリケーションの作成方法

ASPは、既存のHTMLファイルの拡張子の“.htm”または“.html”を“.asp”に変えるだけで簡単に作成できます。ファイルの拡張子が“.asp”のファイルはテキストファイルであり、テキストエディタを使って、以下の要素を自由に記述することができます。

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ファイル(拡張子“.asp”のファイル)を格納したURLを指定すると実行できます。

http://Webサーバ名/ASPSamp/Samp.asp

実行結果は以下のようになります。

4.3.4.2 ASP.NETアプリケーションの作成方法

Symfoware/RDBのデータベースに接続するWebアプリケーションを例にして、Visual Basic .NETによるWebアプリケーションの作成方法を説明します。

以下に作成の手順を示します。なお、本手順はVisual Basic .NET Version 2002を使用しています。

  1. Visual Studio .NETを起動します。

  2. 新しいプロジェクトを作成します。プロジェクトの種類から[Visual Basicプロジェクト]を選択し、テンプレートから[ASP.NET Webアプリケーション]を選択します。[場所]に、“環境設定”で作成したエイリアス名(例:ASPSamp)とプロジェクト名(任意 例:TestWebApl)を指定し、OKボタンを押します。

  3. Visual Basic .NETのメニューから、[プロジェクト]-[参照の追加]を選択します。[参照の追加]画面の、[.NET]タブを選択しコンポーネントの一覧から[Microsoft.Data.ODBC.dll]を選択します。

    注意

    ADOの場合、[COM]タブを選択し[Microsoft ActiveX Data Objects 2.7 Library]を選択します。

  4. 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>
  5. 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
  6. Visual Basic .NETのメニューの、[デバッグ]-[開始]で実行します。

    また、メニューの[ビルド]-[TestWebAplのビルド]でWebアプリケーションをビルドし、ブラウザのアドレスに以下のURLを指定してください。

    http://Webサーバ名/ASPSamp/TestWebApl/WebForm1.aspx

    [実行]ボタンを押すとSymfowareに接続し、結果を表示します。


開発用のサーバと実行用のサーバが違う場合には、以下の方法で作成したプロジェクトを実行用のサーバに配置します。

  1. Visual Basic.NETのメニューから[プロジェクト]-[プロジェクトのコピー]を選択します。

  2. [プロジェクトのコピー]ダイアログボックスの[ターゲット プロジェクトフォルダ]に、実行用のWebサーバ名とプロジェクトフォルダ名(任意 例:TestWebApl)を次の例のように入力します。

    http:// Webサーバ名/TestWebApl
  3. [コピー]の以下のいずれかを選択します。

    • このアプリケーションの実行に必要なファイルのみ

    • すべてのプロジェクトファイル

    • ソースプロジェクトフォルダのすべてのファイル

  4. [OK]ボタンをクリックしてコピーを開始します。