• 検索結果がありません。

PowerPoint プレゼンテーション

N/A
N/A
Protected

Academic year: 2021

シェア "PowerPoint プレゼンテーション"

Copied!
32
0
0

読み込み中.... (全文を見る)

全文

(1)

演習9

入力した条件に従いデータベース

からデータを抽出する

(2)

演習9 製品情報を取得するサンプル

パソコン製品情報が格納された表から、

任意のメーカーIDを取得するプログラムの構造を検討する。

sample1.htm、sample1.asp、SDEV_MST_PRODUCT

データベース

PC_KATABAN KOBAN MAKER_ID HD-0001 1 NED HD-0002 2 NED

パソコン製品情報

サーバー

クライアント

SDEV_MST_PRODUCT

(3)

演習9 パソコン製品情報の表

パソコン製品情報の表の名前は、「SDEV_MST_PRODUCT」である。

SELECT * FROM SDEV_MST_PRODUCT

を入力し、データを確認すること。

項番 列名 項目名 データ型 サイズ 内容

1 PC_KATABAN 製品型番 TEXT 10 パソコンの型番

2 KOBAN 子番 INTEGER2 - 並び替えで使用する番号 3 MAKER_ID メーカーID TEXT 10 パソコンメーカーのID番号 4 PC_TYPE パソコン種類 INTEGER2 - パソコンメの種類 (0-デスクトップ,1-ノート) 5 PC_NAME 製品名 TEXT 50 パソコンの製品名 6 STOCK_VALUE 仕入れ値 LONG - パソコンの仕入れ値(単位:円) 7 STOCK_NUM 在庫数 LONG - パソコンの在庫数 8 SAL_VALUE パソコン販売価格 LONG - パソコンの販売価格(単位:円) 9 SPEC スペック TEXT 255 パソコンのスペック ※ PC_KATABANは主キーである。

(4)

演習9 プログラム構造に関して

sample1.htm

sample1.asp

SDEV_MST_PRODUCT

設問 内容

問1

sample1.htm

」と「

sample1.asp

」は、どの様な処理(画面)を行っている

か?

・それぞれの処理概要と構造的な関係をUML図で示せ

(UMLはシーケンス図 または コミュニケーション図で表現)

問2

sample1.asp

」は、表「SDEV_MST_PRODUCT」にどの様にアクセスしている

か?

・DBアクセスの処理概要とSQL文を抜き出す

(5)

演習9 設問1 -解答例-

設問

内容

問1

sample1.htm

」と

sample1.asp

」は、

どの様な処理(画面)を行っている

か?

・それぞれの処理概要と構造的な

関係を示せ

(6)

演習9 設問1

sample1.htm

①タイトル、メッセージ等の表示。 ②検索条件としてメーカ名を入力させるテキストボックスと「検索実行」ボタンを表示。 ③「検索実行」のsubmitボタンを実行すると、テキストボックスに入力されたデータ値(メ ーカ名)が、txtValueに格納されてsample1.aspに送られる。

sample1.asp

② ① ③

(7)

sample1.htm

演習9 設問1

sample1.asp

④起動と同時にtxtValueに格納された値を取得。 ⑤データベースSDEV_MST_PRODUCT表への接続/Open。 ⑥取得した値を検索キーとしてSQL文の生成と実行。 ⑦検索結果をHTMLに編集して出力。 ④ SDEV_MST_PRODUCT Close SQL(Select) Open ⑤ ⑥ ⑦

(8)
(9)
(10)

演習9 設問2

設問

内容

問2

sample1.asp

」は、

表「

SDEV_MST_PRODUCT

」に

どの様にアクセスしているか?

・DBアクセスの処理概要とSQL

文を抜き出す

(11)

SQL文

演習9 設問2

sample1.asp

[SDEV_MST_PRODUCT]表から、sample1.htmで入力した値(txtValue)と一致する MAKER_IDを検索キーとして、[MAKER_ID],[PC_NAME],[SAL_VALUE],[SPEC]の値を [KOBAN]の昇順に並べて結果を返すSQL文を作成。 sample1.htmで入力したメーカーID(txtValue)を取得し、formValue変数に格納 formValue = Request.Form ( "txtValue" )

strSQLWork="SELECT MAKER_ID, PC_NAME, SAL_VALUE, SPEC

FROM SDEV_MST_PRODUCT

(12)

演習9 データベースとSQLの構成

SQL文

[MAKER_ID] [PC_NAME] [SAL_VALUE] [SPEC] という項目を

[KOBAN]の昇順で並べた結果を返す 入力された[MAKER_ID]を検索キーとして抽出し、 [SDEV_MST_PRODUCT]表から SELECT - FROM - WHERE - ORDER BY - SDEV_MST_PRODUCT txtValue 入力されたMAKER_ID

解説

(13)

演習9 画面の構成

「NED」の値を渡す。

sample1.htm

sample1.asp

(14)

演習9 sample1.htmソース

9行目から13行目の処理

submitボタンを実行した時に、フィールドに

入力された値が、txtValueに格納されて

sample1.aspに送られる動作を行う。

1 <html> : ~省略~

9 <FORM name="frmSearch" action="./sample1.asp" method="POST" target="_self">

10 <input type="text" value="" name="txtValue">

11 <br>

12 <input type="submit" value="検索実行" name="sbmSearch">

13 </FROM>

: ~省略~

解説

(15)

演習9 sample1.aspソース

aspファイル内では、HTMLとして処理する部分と、VBScriptとして

処理する部分が混在する。

aspファイル内では、上から順にプログラム処理される。

(16)

演習9 sample1.aspソース

解説

1 <%@ LANGUAGE="VBSCRIPT" %> aspで使用する言語を宣言する。→VBScriptを適用する

変数の宣言は、必ず実行しなければならない という宣言文 

1行目、2行目は決まりの文言である

3 <%

aspとして処理するのは<%から%>の間となり、aspプログラムの中

に複数存在しても良い

ここ<%から%>までasp・VBScriptとして処理することを示す。即 ち、13行目までをVBScriptとして処理する。 2 <%Option Explicit%>

(17)

演習9 sample1.aspソース

解説

4 Dim m_objDB ' データベースオブジェクト

5 Dim objRS ' 製品マスター用レコードセットオブジェクト

6 Dim strSQLWork ' SQL文を格納する変数

7 Dim formValue ' sample1.htmで入力されたフォームの変数を格納する

aspファイル/VBScriptで使用する変数の宣言

8 formValue = Request.Form ( "txtValue" )

パラメータの取得

sample1.htmで入力した文字列を取得し、変数formValueに格納する

(メーカID)

HTMLのFormで入力した値を取得する方法は、

Request.Form(

“名前”)

で行う

sample1.htmのForm内で定義した入力ボックス名 <input type="text" value="" name="txtValue">

(18)

演習9 sample1.aspソース

解説

9行目、10行目はデータベースを使用するために必要な処理。

以後、変数「m_objDB」を使って、SQL実行を行う。

9 Set m_objDB = Server.CreateObject("ADODB.Connection")

データベースをオープン(接続)する

データベースに接続するための処理。

10 m_objDB.Open “DSN=sdevDB-dsn;" ' ※変更しないで下さい

(19)

演習9 sample1.aspソース

SQL文を作成して、変数strSQLWorkに代入する

11

strSQLWork = "SELECT MAKER_ID, PC_NAME, SAL_VALUE, SPEC FROM SDEV_MST_PRODUCT

WHERE MAKER_ID ='" & formValue & "' ORDER BY KOBAN"

解説

SQL文

[MAKER_ID] [PC_NAME] [SAL_VALUE] [SPEC]という項目を

[KOBAN]の昇順で並べた結果を返す 入力された[MAKER_ID]を検索キーとして抽出し、 [SDEV_MST_PRODUCT]表から SELECT - FROM - WHERE - ORDER BY - 

sample1.htmで入力したメーカーID値と一致するMAKER_IDを持つ

データを抽出する。

条件をWHERE文で定義する。

結果を[KOBAN]の昇順で整列させる(ORDER BY句を使用)

(20)

演習9 sample1.aspソース

まず、検索文を組み立てる。→条件文、整列文を除いたSQL文の作成

解説

SQL文を組み立てる。

SELECT MAKER_ID, PC_NAME, SAL_VALUE, SPEC FROM SDEV_MST_PRODUCT

次に、変数以外の部分を組み入れる。→整列文を加えたSQL文の作成

SELECT MAKER_ID, PC_NAME, SAL_VALUE, SPEC FROM SDEV_MST_PRODUCT

ORDER BY KOBAN

SQL文

(21)

演習9 sample1.aspソース

解説

SQLを変数strSQLWorkに代入する。

SQLは言語だが、asp/VBScriptでは一連の文字列として処理され

る。そのため、

SQL文全体をダブルクゥオーテーション(”)で囲む

要がある。

strSQLWork = "SELECT MAKER_ID, PC_NAME, SAL_VALUE, SPEC FROM SDEV_MST_PRODUCT

ORDER BY KOBAN"

(22)

演習9 sample1.aspソース

strSQLWork =

"文字列"

&

変数

&

"文字列"

解説

sample1.htmで入力した値は、8行目の処理で変数formValueに

格納されている。

変数formValueを条件データとしてSQLを作成する

8 formValue = Request.Form ( "txtValue" )

※SQL文は文字列、formValueは変数(文字列) なので、strSQLWork変数への代入式

は以下の連結代入の形式となる。

strSQLWork = "SELECT MAKER_ID, PC_NAME, SAL_VALUE, SPEC FROM SDEV_MST_PRODUCT

WHERE MAKER_ID="

& formValue &

(23)

演習9 sample1.aspソース

例えば、formValueに「NED」が格納されている場合、SQL文は

以下のようになる。

strSQLWork = "SELECT MAKER_ID, PC_NAME, SAL_VALUE, SPEC FROM SDEV_MST_PRODUCT

WHERE MAKER_ID=NED

ORDER BY KOBAN"

strSQLWork = "SELECT MAKER_ID, PC_NAME, SAL_VALUE, SPEC FROM SDEV_MST_PRODUCT

WHERE MAKER_ID=' "

& formValue &

" ' ORDER BY KOBAN"

解説

strSQLWork = "SELECT MAKER_ID, PC_NAME, SAL_VALUE, SPEC FROM SDEV_MST_PRODUCT

WHERE MAKER_ID="

& formValue &

"ORDER BY KOBAN"

SQLでは文字型のデータを設定する には、値を 「’」 (シングル・クォーテー ション)で囲む必要があるので

(24)

演習9 sample1.aspソース

m_objDB.Execute(

SQL文

) でstrSQLWorkに格納されたSQL文を実行する。

実行した結果は、変数「objRS」に代入(set)する。

以後、変数「objRS」を使って、データベースの検索結果の値を操作する。

objRSの中に、SQL文の検索結果データがレコード数分格納されている。

解説

12 Set objRS = m_objDB.Execute(strSQLWork)

SQL文を実行し、実行した結果を変数「objRS」に代入する。 13 %>

aspとして処理するのは<%から%>の間

この領域は、aspプログラムの中に複数存在しても良い

ここ%>までをasp・VBScriptとして処理することを示す。 即ち、3行目から13行目までをVBScriptとして処理する。

(25)

演習9 sample1.aspソース

解説

14 <HTML> 15 <HEAD> : : 22 <B>検索結果</B> :

25 <TABLE cellspacing="1" cellpadding="3" width="100%">

26 <TR>

27 <TD bgcolor="#333333" align="center"><font size="2"

COLOR="#ffffff"><b>製品名</b></font></td> : : 31 </TR>

記述されたHTMLタグをそのまま処理する。

この部分は、HTMLのヘッダ部と一覧TABLEの1行目(列タイトル)を出

力している。

(26)

演習9 sample1.aspソース

解説

18 <TITLE>サンプル1-検索結果-</TITLE> 19 </HEAD> 20 <BODY bgcolor="#FFFFFF"> 21 <CENTER> 22 <B>検索結果</B> 23 <BR> 24 <BR>

25 <TABLE cellspacing="1" cellpadding="3" width="100%">

26 <TR>

27 <TD bgcolor="#333333" align="center"><font size="2"

COLOR="#ffffff"><b>製品名</b></font></td>

28 <TD bgcolor="#333333" align="center"><font size="2"

COLOR="#ffffff"><b>メーカー</b></font></td>

29 <TD bgcolor="#333333" align="center"><font size="2"

COLOR="#ffffff"><b>販売価格</b></font></td>

30 <TD bgcolor="#333333" align="center"><font size="2"

COLOR="#ffffff"><b>スペック</b></font></td>

(27)

演習9 sample1.aspソース

解説

32 <% 更に、ここ<%から%>までasp・VBScriptとして処理することを示す。

即ち、32行目から43行目までをVBScriptとして処理する。

33 Do While (objRS.Eof = False)

34 Response.Write("<TR>") 35 Response.Write(vbCrLF)

36 Response.Write("<TD>" & objRS("PC_NAME") & "</TD>") 37 Response.Write("<TD>" & objRS("MAKER_ID") & "</TD>") 38 Response.Write("<TD>" & objRS("SAL_VALUE") & "</TD>") 39 Response.Write("<TD>" & objRS("SPEC") & "</TD>")

40 Response.Write("</TR>") 41 objRS.MoveNext 42 Loop 【説明】改行文字をHTML上に出力。プログラ ムでは特に必要ないがHTMLに出力したとき にソースを見やすくするために入れている 【説明】次のレコードへ ※この処理をいれないと無限ループに陥る

◆Do While ~ Loop 文で(検索結果データを表形式で表示するタグを生成する処理) ◆「objRs.Eof」 がFalse(偽) の間Loopまでの間の処理を繰り返すことを意味する。

(28)

演習9 sample1.aspソース

33 Do While (objRS.Eof = False)

34 Response.Write("<TR>") 35 Response.Write(vbCrLF)

36 Response.Write("<TD>" & objRS("PC_NAME") & "</TD>") 37 Response.Write("<TD>" & objRS("MAKER_ID") & "</TD>") 38 Response.Write("<TD>" & objRS("SAL_VALUE") & "</TD>") 39 Response.Write("<TD>" & objRS("SPEC") & "</TD>") 40 Response.Write("</TR>")

41 objRS.MoveNext 42 Loop

<TR>

<TD>VALUE START</TD><TD>NED</TD><TD>184800</TD><TD>Duran1.7GHz, 512MB,80GB UltraATA100, DVD-ROM</TD></TR> <TR>

<TD>VALUE START</TD><TD>NED</TD><TD>239800</TD><TD>Tentium4 2.4GHz, 512MB,120GB UltraATA100, DVD-ROM</TD></TR> <TR>

<TD>Lavie</TD><TD>NED</TD><TD>174800</TD><TD>Duran1GHz, 256MB, 30GB UltraATA66, CD-R/RW</TD></TR> <TR>

<TD>Lavie</TD><TD>NED</TD><TD>254800</TD><TD>Tentium M 1.7GHz, 512MB,60GB UltraATA100, CD-R/RW DVD-ROM</TD></TR>

出力される画面 出力されるHTML文 34行目から40行目を 繰り返すごとに1行分 のデータをHTML上に 出力している。

(29)

演習9 sample1.aspソース

解説

34 Response.Write("<TR>") 35 Response.Write(vbCrLF)

36 Response.Write("<TD>" & objRS("PC_NAME") & "</TD>") 37 Response.Write("<TD>" & objRS("MAKER_ID") & "</TD>") 38 Response.Write("<TD>" & objRS("SAL_VALUE") & "</TD>") 39 Response.Write("<TD>" & objRS("SPEC") & "</TD>")

40 Response.Write("</TR>") Response.Write(“ 文字列 ”)でHTML上に文字列を出力する。 34行目では、 <TR> を 最後の40行目では </TR> をHTML上に出力する 。 以下同様の処理を行う。 35行目の vbCrLf は改行コードを示す。改行文字をHTML上に出力。プログラムでは 特に必要ないがHTMLに出力したときにソースを見やすくするために入れている

◆HTML上に出力するには、

Response.Write

を使用する。

(30)

演習9 sample1.aspソース

◆列の値を取り出すには、

objRS("列名")

を使用する。

「PC_NAME」の値は、 objRS(“PC_NAME”)

「MAKER_ID」の値は、 objRS(“MAKER_ID”)

「SET_VALUE」の値は、 objRS(“SET_VALUE”)

「SPEC」の値は、 objRS(“SPEC”)

解説

36行目から39行目は、objRS変数内の[PC_NAME]、[MAKER_ID]、[SET_VALUE]、

[SPEC]のデータを<TD> 各種データの実体 </TD>でHTML上に出力する。

36 Response.Write("<TD>" & objRS("PC_NAME") & "</TD>") 37 Response.Write("<TD>" & objRS("MAKER_ID") & "</TD>") 38 Response.Write("<TD>" & objRS("SAL_VALUE") & "</TD>") 39 Response.Write("<TD>" & objRS("SPEC") & "</TD>")

(31)

objRS.MoveNext objRS objRS.MoveNext objRS

演習9 sample1.aspソース

objRSは1行ずつ操作できる。

それ以上、行(レコード)が存在しない場合は、

「objRS.Eof=True」となる。(Eof=End of file)

objRS objRS.MoveNext objRS objRS.Eof=True の状態 objRS objRS.MoveNext

解説

objRS.Eof=False の状態 34行目から41行目までをEof状態になるまで繰り返す。 繰り返すごとに1行分のデータをHTML上に出力している。

(32)

演習9 sample1.aspソース

解説

◆データベースの終了処理を行う。

49 <%

53 %>

50 Set objRS = Nothing

51 m_objDB.Close

52 Set m_objDB = Nothing

変数objRSの解放 データベースをクローズする。 変数m_objDBの解放 更に、ここ<%から%>までasp・VBScriptとして処理することを示す。 即ち、49行目から53行目までをVBScriptとして処理する。 解放: PCやサーバ内の資源(主にメモリ領域)をプログラム動作前の状態に戻すこ とをいう。 49行目から53行目までをVBScriptとして処理する。

参照

関連したドキュメント

●Gartner Magic QuadrantにてクラウドHCM Suiteにおけるリーダーの評価.. Copyright © 2022 Nomura System Corporation Co, Ltd. All Rights Reserved.. Copyright © 2022 Nomura

支援要請入力詳細 13ページ 患者受入入力詳細 14ページ 支援可能スタッフ3.

and Kristjan Vassil (2010) Internet voting in Estonia : a comparative analysis of four elections since 2005 : report for the Council of Europe”Report for the Council of Europe.

2021年1月15日にHa Tay Pharmaceutical Joint Stock Company(

がん化学療法に十分な知識・経験を持つ医師のもとで、本剤の投与が適切と判断さ

日医かかりつけ医機能研修制度 令和 年度応用研修会 「メタボリックシンドロームからフレイルまで」 飯島勝矢 Tamakoshi A ら. Obesity

(Immuno Checkpoint Inhibitor Proper use Support team

剣道部 柔道部 硬式野球部 卓球部 水泳部 ラグビー部 ソフトテニス部 テニス部 ハンドボール部 サッカー部 バドミントン部