2.5 新規投稿記事のデータベースへの格納
リスト2.5 input2.asp
<%@ LANGUAGE="VBScript" %>
<% Option Explicit %>
<HTML>
<HEAD>
<TITLE>input2.asp</TITLE>
</HEAD>
<BODY>
<%
Const FOR_DEBUG = "<BR>Debug(input2.asp):"
Const DATASOURCE = "aspZADO"
Dim lngMessageNum '記事番号
Dim dtmMessageTime '記事投稿日時
Dim strName '記事投稿者名
Dim strTitle '記事標題
Dim strMessage '記事内容
Dim objConn,objRst,strSQL,objRst2
'新規投稿画面からデータを受信します
strName = Request("name")
strTitle = Request("title")
strMessage = Request("message")
'受信データを確認表示します
Response.Write FOR_DEBUG & "strName=" & strName & "<BR>"
Response.Write FOR_DEBUG & "strTitle=" & strTitle & "<BR>"
Response.Write FOR_DEBUG & "strMessage=" & strMessage & "<BR>"
'データベースにデータを格納します
'データベースへ接続します
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open DATASOURCE
'記事投稿日付を設定します
dtmMessageTime = Now()
'記事番号を付与します
'記事が1個でもあるかどうかチェックします
Set objRst = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM tblBBS;"
objRst.Open strSQL, objConn, 3, 2
If NOT objRst.BOF Then
'記事がある
'既存の最大記事番号を調べます。
strSQL = "SELECT MAX(messageNum) As maxMessageNum From tblBBS;"
'レコードセットオブジェクトを生成します
Set objRst2 = Server.CreateObject("ADODB.Recordset")
objRst2.Open strSQL, objConn, 1,1
lngMessageNum = objRst2("maxMessageNum") + 1
objRst2.Close
Else
'記事がない
lngMessageNum = 1
End If
'新規レコードを追加し、各フィールドに値を設定します
objRst.AddNew
objRst("messageNum") =lngMessageNum
objRst("messageTime") =dtmMessageTime
objRst("name") =strName
objRst("title") =strTitle
objRst("message") =strMessage
objRst.UpDate
objRst.Close
objConn.Close
%>
記事を投稿しました
<FORM ACTION="index2.asp" METHOD="POST" TARGET="_top">
<INPUT TYPE="submit" VALUE="OK">
</FORM>
</BODY>
</HTML>
図2.9
図2.10
図2.11