股票網(wǎng)站方案設(shè)計(jì)
發(fā)表時(shí)間:2023-08-20 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]這篇文章介紹股市網(wǎng)站應(yīng)用設(shè)計(jì),包括股市成交線上查詢系統(tǒng)、線上股市買賣交易系統(tǒng)等應(yīng)用的點(diǎn)子、設(shè)計(jì)實(shí)例、以及詳細(xì)解說(shuō),讓您快速地設(shè)計(jì)出各種股市的網(wǎng)站應(yīng)用。股市網(wǎng)站資料庫(kù)應(yīng)用股市使用網(wǎng)站資料庫(kù),可以透過(guò)I...
這篇文章介紹股市網(wǎng)站應(yīng)用設(shè)計(jì),包括股市成交線上查詢系統(tǒng)、線上股市買賣交易系統(tǒng)等應(yīng)用的點(diǎn)子、設(shè)計(jì)實(shí)例、以及詳細(xì)解說(shuō),讓您快速地設(shè)計(jì)出各種股市的網(wǎng)站應(yīng)用。
股市網(wǎng)站資料庫(kù)應(yīng)用
股市使用網(wǎng)站資料庫(kù),可以透過(guò)Internet、或Intranet提供以下的應(yīng)用∶
* 股市成交線上查詢*
* 線上股市買賣交易*
右上角標(biāo)示*的應(yīng)用,本節(jié)將提供設(shè)計(jì)的范例,并詳加解說(shuō)。
執(zhí)行本章資料庫(kù)的范例,所用的資料庫(kù)可為Microsoft Access、Microsoft SQL Server、或Text檔案(讀者可修改成其他支援ODBC的資料庫(kù),詳見(jiàn)1-6-5節(jié)),須於NT安裝IIS 3.0,并於「控制臺(tái)」中的「ODBC」,新建一個(gè)名稱為「BookSamp」的資料來(lái)源,驅(qū)動(dòng)程式為「Microsoft Access Driver」、「SQL Server」、或「Microsoft Text 驅(qū)動(dòng)程式」。詳見(jiàn)附錄 范例磁片。
1
股市成交線上查詢系統(tǒng)
「股市成交線上查詢系統(tǒng)」,可以透過(guò)Internet,提供線上查詢股票成交的功能。
股市投資人可以透過(guò)Internet,連線上證券公司的「股市成交線上查詢系統(tǒng)」,輸入帳戶號(hào)碼,即可查詢成交的結(jié)果,包括成交的股票名稱、和數(shù)量。
并可以提供股市大盤(pán)分析、即時(shí)技術(shù)分析、收盤(pán)價(jià)格、股市消息等股市資訊。
設(shè)計(jì)實(shí)例
讓我們執(zhí)行一個(gè)實(shí)例。
( 范例 data2.asp 股市成交線上查詢
若要查詢成交資料,於用戶端使用瀏覽器,瀏覽本書(shū)所附安裝於網(wǎng)站伺服器的data2.asp。
於「帳號(hào)」處輸入帳號(hào)後,譬如輸入帳號(hào)123456,按下「成交查詢」按鈕,即可顯示查詢的結(jié)果如下,包括成交日期、股票名稱、買進(jìn)賣出、成交數(shù)量、成交價(jià)格∶
找不到成交記錄時(shí),譬如輸入帳號(hào)654321,顯示如下∶
設(shè)計(jì)實(shí)例詳細(xì)解說(shuō)
建立資料表
首先使用Microsoft Access、Microsoft SQL Server 、Text檔案、或任何一種支援ODBC的資料庫(kù),建立一個(gè)資料表Stock。
於欄名DATE、ID、TYPE、STOCK、QTY、PRICE分別輸入成交日期、帳號(hào)、買進(jìn)賣出、股票名稱、成交數(shù)量、成交價(jià)格的資料。
使用Microsoft Access建立一個(gè)資料表Stock,如下∶
或使用Microsoft SQL Server建立一個(gè)資料表Stock,如下∶
或使用Text檔案建立一個(gè)資料表Stock,如下∶
設(shè)計(jì)輸入表單
接著,設(shè)計(jì)輸入表單form,以讓查詢者輸入帳號(hào)ID1,按下「成交查詢」按鈕submit時(shí),即使用POST的方式將輸入資料傳送到網(wǎng)站伺服器,并執(zhí)行於「form action=...」所設(shè)定的data2.asp檔案(與form為同一個(gè)ASP檔案),程式碼如下∶
<form action="data2.asp" method="post">
帳號(hào): <INPUT TYPE=TEXT VALUE="123456" NAME=ID1 SIZE=10>
<INPUT TYPE=submit VALUE="成交查詢" name="Action">
</form>
網(wǎng)站伺服器執(zhí)行data2.asp檔案,首先經(jīng)由Request.Form("ID1")取得查詢者所輸入的帳號(hào)ID1,若ID1非空白時(shí),表示為表單輸入所呼叫執(zhí)行。
查詢資料庫(kù)
使用「Server.CreateObject」建立連線的物件,并使用「Open」開(kāi)啟待存取查詢資料庫(kù)BookSamp。
再使用SELECT的SQL指令查詢資料庫(kù)的資料,設(shè)定SQL指令,查詢?yōu)镮D符合帳號(hào)Request.Form("ID1")的資料,下個(gè)「Execute」指令,即可開(kāi)始執(zhí)行存取查詢資料庫(kù)的動(dòng)作,并將查詢結(jié)果儲(chǔ)存到RecordSets物件RS。
程式碼如下∶
<%
IF Request.Form("ID1") THEN
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT DATE,STOCK,TYPE,QTY,PRICE FROM Stock WHERE ID=" & Request.Form("ID1")
Set RS = Conn.Execute(SQL)
%>
接著,要顯示查詢的結(jié)果了。
首先,由「 IF RS.EOF THEN ...」判斷是否找到ID為帳號(hào)Request.Form("ID1")的資料,若RS.EOF為T(mén)RUE,則顯示「報(bào)歉 , 帳號(hào) ...未成交!」。
程式碼,如下∶
成交查詢結(jié)果:<br>
<% IF RS.EOF THEN %>
<FONT COLOR="#0000FF">報(bào)歉 , 帳號(hào) <% =Request.Form("ID1") %> 未成交!</FONT>
若找到ID為帳號(hào)Request.Form("ID1")的成交資料時(shí),則顯示查詢的結(jié)果,包括成交日期、股票名稱、買進(jìn)賣出、成交數(shù)量、成交價(jià)格,分別由RecordSets物件的RS(0)、RS(1) 、RS(2)、RS(3) 、RS(4) 取得。
RS.Fields.Count表示RecordSets物件的欄位數(shù),由「For i = 0 to RS.Fields.Count - 1」取得RS(i) 各欄位的資料。配合<TABLE>表格的HTML語(yǔ)法,將結(jié)果填入表格的各欄位當(dāng)中。
若還有下一筆資料,使用RS.MoveNext移到下一筆的位置。
程式碼,如下∶
<% ELSE %>
<FONT COLOR="#FF0000">
恭喜您, 帳號(hào) <% =Request.Form("ID1") %> <BR>
有成交, 如下表:<BR>
</FONT>
<TABLE COLSPAN=8 CELLPADDING=5 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>日期</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>股票</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>買賣</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>成交數(shù)量</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>成交價(jià)格</FONT></TD>
</TR>
<% Do While Not RS.EOF %>
<TR>
<% For i = 0 to RS.Fields.Count - 1 %>
<TD BGCOLOR="f7efde" VALIGN=TOP><FONT COLOR="#0000"><% = RS(i) %></FONT></TD>
<% Next %>
</TR>
<%
RS.MoveNext
Loop
RS.Close
Conn.Close
%>
</TABLE>
<% END IF %>
最後,使用RS.Close關(guān)閉RecordSet,使用Conn.Close關(guān)閉資料庫(kù)。
全部的程式碼,如下∶
<HTML>
<HEAD>
<TITLE>股市成交線上查詢系統(tǒng)</TITLE>
<META HTTP-EQUIV="content-type" CONTENT="text/html;charset=big5">
</HEAD>
<CENTER>
<BODY BGCOLOR=#FFFFFF>
<FONT SIZE=+2 COLOR="#0000FF">股市成交線上查詢系統(tǒng)</FONT>
<%
IF Request.Form("ID1") THEN
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT DATE,STOCK,TYPE,QTY,PRICE FROM Stock WHERE ID=" & Request.Form("ID1")
Set RS = Conn.Execute(SQL)
%>
<HR>
成交查詢結(jié)果:<br>
<% IF RS.EOF THEN %>
<FONT COLOR="#0000FF">報(bào)歉 , 帳號(hào) <% =Request.Form("ID1") %> 未成交!</FONT>
<% ELSE %>
<FONT COLOR="#FF0000">
恭喜您, 帳號(hào) <% =Request.Form("ID1") %> <BR>
有成交, 如下表:<BR>
</FONT>
<TABLE COLSPAN=8 CELLPADDING=5 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>日期</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>股票</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>買賣</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>成交數(shù)量</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>成交價(jià)格</FONT></TD>
</TR>
<% Do While Not RS.EOF %>
<TR>
<% For i = 0 to RS.Fields.Count - 1 %>
<TD BGCOLOR="f7efde" VALIGN=TOP><FONT COLOR="#0000"><% = RS(i) %></FONT></TD>
<% Next %>
</TR>
<%
RS.MoveNext
Loop
RS.Close
Conn.Close
%>
</TABLE>
<% END IF %>
<HR>
<% END IF %>
<BR>
<form action="data2.asp" method="post">
帳號(hào): <INPUT TYPE=TEXT VALUE="123456" NAME=ID1 SIZE=10>
<INPUT TYPE=submit VALUE="成交查詢" name="Action">
</form>
<HR>
</CENTER>
</BODY>
</HTML>
2
線上股市買賣交易系統(tǒng)
「線上股市買賣交易系統(tǒng)」,可以透過(guò)Internet,提供線上股票委托買賣下單的功能。
股市投資人可以透過(guò)Internet,連線上證券公司的「線上股市買賣交易系統(tǒng)」,輸入帳戶號(hào)碼、買賣的股票名稱、和數(shù)量,即可完成委托下單的手續(xù)。
委托下單時(shí),買賣交易系統(tǒng)提供可以增加、取消、查詢委托下單的功能。
下單後,透過(guò)Internet,可查詢成交的結(jié)果,包括成交的股票名稱、和數(shù)量。
設(shè)計(jì)實(shí)例
讓我們執(zhí)行一個(gè)實(shí)例。
( 范例 data13.asp 線上股市買賣交易
若要做線上股市買賣交易,於用戶端使用瀏覽器,瀏覽本書(shū)所附安裝於網(wǎng)站伺服器的data13.asp。
於「帳號(hào)」處輸入帳號(hào)如123456,於「買賣」處選擇買進(jìn)賣出如買進(jìn),於「股票代號(hào)」處輸入股票代號(hào)如2306,於「數(shù)量」處輸入數(shù)量如10,於「價(jià)格」處輸入價(jià)格如80後,按下「委托下單」按鈕,即可顯示委托下單的結(jié)果如下,包括帳號(hào)、買賣、股票代號(hào)、數(shù)量、價(jià)格、委托單代號(hào)∶
取消委托單
委托下單後,可以取消所委托的記錄,於「委托單代號(hào)」處輸入委托單代號(hào)如1997428224659後,按下「取消委托單」按鈕,即可顯示取消委托的結(jié)果如下∶
若待取消的委托單尚未委托下單過(guò),則取消委托單時(shí)顯示「找不到委托單」如下∶
查詢委托單
委托下單後,可以查詢所有委托的記錄,僅須於「帳號(hào)」處輸入帳號(hào)如123456後,按下「查詢委托單」按鈕,即可顯示委托單的結(jié)果如下∶
查詢委托單時(shí),若尚未委托下單,則查詢委托單時(shí)將顯示「找不到委托單」如下∶
成交查詢
委托下單後,可以查詢所有委托的記錄是否已經(jīng)成交,僅須於「帳號(hào)」處輸入帳號(hào)如123456後,按下「成交查詢」按鈕,即可顯示成交查詢的結(jié)果如下∶
成交查詢時(shí),若尚未成交,則查詢成交將顯示「未成交」如下∶
設(shè)計(jì)實(shí)例詳細(xì)解說(shuō)
建立資料表
首先使用Microsoft Access、Microsoft SQL Server 、Text檔案、或任何一種支援ODBC的資料庫(kù),建立一個(gè)資料表StockRequest,儲(chǔ)存委托單記錄。
使用Microsoft Access建立一個(gè)資料表StockRequest,如下∶
建立欄位ID、TYPE、STOCK、QTY、PRICE、SN,分別代表一個(gè)委托單的客戶帳號(hào)、買進(jìn)賣出、股票代號(hào)、數(shù)量、價(jià)格、委托單號(hào)碼。建立資料表時(shí)不必輸入資料。
或使用Microsoft SQL Server建立一個(gè)資料表StockRequest,如下∶
或使用Text檔案建立一個(gè)資料表StockRequest,如下∶
另外建立一個(gè)資料表Stock,儲(chǔ)存成交的記錄,於欄名DATE、ID、TYPE、STOCK、QTY、PRICE,分別輸入成交日期、帳號(hào)、買進(jìn)賣出、股票名稱、成交數(shù)量、成交價(jià)格的資料。
委托單記錄資料表StockRequest,與成交的記錄資料表Stock之間的關(guān)系,留給讀者自行發(fā)揮。
使用Microsoft Access建立一個(gè)資料表Stock,如下∶
或使用Microsoft SQL Server建立一個(gè)資料表Stock,如下∶
或使用Text檔案建立一個(gè)資料表Stock,如下∶
設(shè)計(jì)輸入的表單
接著,設(shè)計(jì)輸入的表單form,線上購(gòu)物時(shí),當(dāng)客戶輸入帳號(hào)ID1,選擇買進(jìn)賣出TYPE1,輸入股票代號(hào)STCOK1,數(shù)量QTY1,價(jià)格PRICE1,按下「委托下單」按鈕submit時(shí),即使用POST的方式將輸入資料傳送到網(wǎng)站伺服器,并執(zhí)行於「form action=...」所設(shè)定的data13.asp檔案(與form為同一個(gè)ASP檔案),程式碼如下∶
股市買賣委托, 請(qǐng)輸入以下資料:<br>
<form action="data13.asp" method="post">
<FONT COLOR="#FF8080"> </FONT>帳號(hào) (如123456):
<INPUT TYPE=TEXT VALUE="123456" NAME="ID1" SIZE=10><BR>
<FONT COLOR="#FF8080"> </FONT>買賣:
<select name="TYPE1">
<OPTION SELECTED>買進(jìn)
<OPTION>賣出
</select>
<br>
<FONT COLOR="#FF8080"> </FONT>股票代號(hào) (如2306):
<INPUT TYPE=TEXT VALUE="2306" NAME="STOCK1" SIZE=6><BR>
<FONT COLOR="#FF8080"> </FONT>數(shù)量:
<INPUT TYPE=TEXT VALUE="10" NAME="QTY1" SIZE=6><BR>
<FONT COLOR="#FF8080"> </FONT>價(jià)格:
<INPUT TYPE=TEXT VALUE="80" NAME="PRICE1" SIZE=6><BR>
<INPUT TYPE=submit VALUE="委托下單" name="Action"><p>
<HR WIDTH = 30% ALIGN=LEFT>
<FONT COLOR="#FF0000"> </FONT>委托單代號(hào):
<INPUT TYPE=TEXT NAME="SN1" SIZE=12>
<INPUT TYPE=submit VALUE="取消委托單" name="Action"><P>
<FONT COLOR="#0000FF"> </FONT>帳號(hào):
<INPUT TYPE=TEXT VALUE="123456" NAME="ID2" SIZE=10>
<INPUT TYPE=submit VALUE="查詢委托單" name="Action"><P>
<FONT COLOR="#00FF00"> </FONT>帳號(hào):
<INPUT TYPE=TEXT VALUE="123456" NAME="ID3" SIZE=10>
<INPUT TYPE=submit VALUE="成交查詢" name="Action">
</form>
取消取消委托單時(shí),客戶輸入委托單代號(hào)SN1,按下「取消委托單」按鈕submit送到網(wǎng)站伺服器。
查詢委托單時(shí),客戶輸入帳號(hào)ID2,按下「查詢委托單」按鈕submit送到網(wǎng)站伺服器。
查詢成交時(shí),客戶輸入帳號(hào)ID3,按下「成交查詢」按鈕submit送到網(wǎng)站伺服器。
當(dāng)網(wǎng)站伺服器執(zhí)行data13.asp檔案時(shí),首先經(jīng)由Request.Form("Action")取得所按submit按鈕上的顯示文字VALUE,Left(Request.Form("Action"),2)系只取前兩個(gè)中文字,若Request.Form("Action")非空白時(shí),表示為表單輸入所呼叫執(zhí)行。
由「SELECT CASE Left(Request.Form("Action"),2) 」判斷是按了那個(gè)按鈕。若按鈕上前兩個(gè)字為「委托」時(shí),則執(zhí)行AddStock() 副程式;若為「取消」時(shí),則執(zhí)行DeleteStock() 副程式;若為「查詢」時(shí),則執(zhí)行CheckStock() 副程式;若為「成交」時(shí),則執(zhí)行CheckTrans() 副程式。
<%
SELECT CASE Left(Request.Form("Action"),2)
CASE "委托"
AddStock()
CASE "取消"
DeleteStock()
CASE "查詢"
CheckStock()
CASE "成交"
CheckTrans()
END SELECT
%>
委托下單
按了「委托下單」按鈕時(shí),將執(zhí)行AddStock() 副程式。
首先,使用「Server.CreateObject」建立連線的物件,并使用「Open」開(kāi)啟待存取查詢資料庫(kù)BookSamp。
於StockRequest資料表,使用「INSERT INTO...」指令新增一筆資料。此筆新增資料的欄位ID、TYPE、STOCK、QTY、PRICE為所輸入的表單資料。委托單欄位SN系設(shè)定為下單時(shí)的日期時(shí)間。
程式碼如下∶
Sub AddStock()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SNNO = YEAR(DATE()) & MONTH(DATE()) & DAY(DATE()) & HOUR(NOW) & MINUTE(NOW) & SECOND(NOW)
SQL = "INSERT INTO StockRequest (ID, TYPE, STOCK, QTY, PRICE, SN) VALUES('" & Request.Form("ID1") & "','" & LEFT(Request.Form("TYPE1"),2) & "','" & Request.Form("STOCK1") & "','" & Request.Form("QTY1") & "','" & Request.Form("PRICE1") & "','" & SNNO & "')"
Set RS = Conn.Execute(SQL)
接著,要顯示執(zhí)行的結(jié)果了。
顯示執(zhí)行的結(jié)果時(shí),配合<TABLE>表格的HTML語(yǔ)法,將輸入資料與委托單代號(hào)填入表格的各欄位當(dāng)中。
程式碼,如下∶
<FONT COLOR="#0000FF">委托下單結(jié)果:</FONT><br>
<FONT COLOR="#0000FF">下單 OK ! 委托單代號(hào)為 <% =SNNO %></FONT>
<TABLE COLSPAN=8 CELLPADDING=1 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>帳號(hào)</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>買賣</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>股票代號(hào)</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>數(shù)量</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>價(jià)格</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>委托單代號(hào)</FONT></TD>
</TR>
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("ID1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =LEFT(Request.Form("TYPE1"),2) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("STOCK1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("QTY1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("PRICE1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =SNNO %></FONT></TD>
</TR>
</TABLE>
<%
Conn.Close
End Sub %>
最後,使用Conn.Close關(guān)閉資料庫(kù)。
取消委托單
按了「取消委托單」按鈕時(shí),將執(zhí)行DeleteStock() 副程式。
首先,先尋找到所待取消的委托單,使用「Server.CreateObject」建立連線的物件,并使用「Open」開(kāi)啟待存取查詢資料庫(kù)BookSamp。
再使用SELECT的SQL指令查詢資料庫(kù)的資料,於StockRequest資料表,設(shè)定SQL指令,查詢委托單號(hào)碼欄位符合所輸入Request.Form("SN1")的資料,下個(gè)「Execute」指令,即可開(kāi)始執(zhí)行存取查詢資料庫(kù)的動(dòng)作,并將查詢結(jié)果儲(chǔ)存到RecordSets物件RS。
由「IF RS.EOF THEN ...」判斷是否找到所待取消的委托單,若RS.EOF為T(mén)RUE,表示找不到此委托單,則顯示「找不到委托單代號(hào)...」。
程式碼如下∶
<%
Sub DeleteStock()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT * FROM StockRequest WHERE SN = '" & Request.Form("SN1") & "'"
Set RS = Conn.Execute(SQL)
%>
<HR>
<FONT COLOR="#0000FF">取消委托結(jié)果:</FONT><br>
<%
IF RS.EOF THEN
'找不到 !
%>
<FONT COLOR="#FF0000">找不到委托單代號(hào) <% =Request.Form("SN1") %> !</FONT>
若找到所待取消的委托單,則於StockRequest資料表,使用「DELETE FROM...」指令刪除此筆委托單資料。
接著,顯示執(zhí)行的結(jié)果,配合<TABLE>表格的HTML語(yǔ)法,將於StockRequest資料表刪除的委托單資料,填入表格的各欄位當(dāng)中,以顯示出來(lái)。
程式碼,如下∶
<% ELSE '取消委托 ! %>
<FONT COLOR="#FF0000">委托單代號(hào) <% =Request.Form("SN1") %> 已經(jīng)取消 !</FONT>
<TABLE COLSPAN=8 CELLPADDING=1 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>帳號(hào)</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>買賣</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>股票代號(hào)</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>數(shù)量</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>價(jià)格</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>委托單代號(hào)</FONT></TD>
</TR>
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =RS(0) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =RS(1) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =RS(2) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =RS(3) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =RS(4) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =RS(5) %></FONT></TD>
</TR>
</TABLE>
<%
'StockRequest刪除一筆
SQL = "DELETE FROM StockRequest WHERE SN = '" & Request.Form("SN1") & "'"
Set RS = Conn.Execute(SQL)
END IF
Conn.Close
End Sub %>
最後,使用Conn.Close關(guān)閉資料庫(kù)。
查詢委托單
按了「查詢委托單」按鈕時(shí),執(zhí)行CheckStock() 副程式。
首先,先尋找到所待查詢帳號(hào)的委托單,使用「Server.CreateObject」建立連線的物件,并使用「Open」開(kāi)啟待存取查詢資料庫(kù)BookSamp。
再使用SELECT的SQL指令查詢資料庫(kù)的資料,於StockRequest資料表,設(shè)定SQL指令,查詢帳號(hào)ID符合所輸入Request.Form("ID2")的資料,下個(gè)「Execute」指令,即可開(kāi)始執(zhí)行存取查詢資料庫(kù)的動(dòng)作,并將查詢結(jié)果儲(chǔ)存到RecordSets物件RS。
由「IF RS.EOF THEN ...」判斷是否找到所待查詢帳號(hào)的所有委托單記錄,若RS.EOF為T(mén)RUE,表示找不到此帳號(hào)的委托單,則顯示「找不到委托單 !」。
程式碼如下∶
<%
Sub CheckStock()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT * FROM StockRequest WHERE ID = '" & Request.Form("ID2") & "'"
Set RS = Conn.Execute(SQL)
%>
<HR>
<FONT COLOR="#0000FF">查詢委托單結(jié)果:</FONT><br>
<%
IF RS.EOF THEN
'找不到委托單 !
%>
<FONT COLOR="#FF0000">找不到委托單 !</FONT>
若找到帳號(hào)ID符合所輸入Request.Form("ID2")的資料,則顯示查詢的結(jié)果,包括帳號(hào)、買賣、股票代號(hào)、數(shù)量、價(jià)格、委托單代號(hào),分別由RecordSets物件的RS(0)、RS(1)、RS(2)、RS(3)、RS(4)、RS(5)取得。
RS.Fields.Count表示RecordSets物件的欄位數(shù),由「For i = 0 to RS.Fields.Count - 1」取得RS(i) 各欄位的資料。配合<TABLE>表格的HTML語(yǔ)法,將結(jié)果填入表格的各欄位當(dāng)中。
由「If INT(j/2)*2 <> j Then... 」判斷顯示奇偶筆的委托單資料,奇偶列顯示不同的顏色。
若還有下一筆資料,使用RS.MoveNext移到下一筆的位置。
程式碼,如下∶
<% ELSE %>
<% '有委托單 ! %>
<FONT COLOR="#0000ff">委托單如下:</FONT>
<TABLE COLSPAN=8 CELLPADDING=5 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>帳號(hào)</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>買賣</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>股票代號(hào)</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>數(shù)量</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>價(jià)格</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>委托單代號(hào)</FONT></TD>
</TR>
<% j = 1 %>
<% Do While Not RS.EOF %>
<TR>
<% For i = 0 to RS.Fields.Count - 1 %>
<% If INT(j/2)*2 <> j Then %>
<TD BGCOLOR="E8FFFF" ALIGN=CENTER>
<FONT COLOR="#000000"><%= RS(i) %></FONT></TD>
<% Else %>
<TD ALIGN=CENTER BGCOLOR="#C0FFFF">
<FONT COLOR="#000000"><%= RS(i) %></FONT></TD>
<% END IF %>
<% Next %>
</TR>
<%
RS.MoveNext
j = j + 1
Loop
%>
</TABLE>
<% END IF
RS.Close
Conn.Close
End Sub %>
最後,使用RS.Close關(guān)閉RecordSet,使用Conn.Close關(guān)閉資料庫(kù)。
成交查詢
按了「成交查詢」按鈕時(shí),執(zhí)行CheckTrans() 副程式。
首先,尋找到所待查詢帳號(hào)的成交記錄,使用「Server.CreateObject」建立連線的物件,并使用「Open」開(kāi)啟待存取查詢資料庫(kù)BookSamp。
再使用SELECT的SQL指令查詢資料庫(kù)的資料,於Stock資料表,設(shè)定SQL指令,查詢帳號(hào)欄位ID符合所輸入Request.Form("ID3")的資料,下個(gè)「Execute」指令,即可開(kāi)始執(zhí)行存取查詢資料庫(kù)的動(dòng)作,并將查詢結(jié)果儲(chǔ)存到RecordSets物件RS。
由「IF RS.EOF THEN ...」判斷是否找到所待查詢帳號(hào)的所有成交記錄,若RS.EOF為T(mén)RUE,表示找不到此帳號(hào)的成交記錄,則顯示「報(bào)歉, 帳號(hào)...未成交!」。
程式碼如下∶
<%
Sub CheckTrans()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT DATE,STOCK,TYPE,QTY,PRICE FROM Stock WHERE ID=" & Request.Form("ID3")
Set RS = Conn.Execute(SQL)
%>
<HR>
成交查詢結(jié)果:<br>
<% IF RS.EOF THEN %>
<FONT COLOR="#0000FF">報(bào)歉 , 帳號(hào) <% =Request.Form("ID3") %> 未成交!</FONT>
若找到帳號(hào)ID符合所輸入Request.Form("ID3")的資料,則顯示查詢的結(jié)果,包括日期、股票、買賣、成交數(shù)量、成交價(jià)格,分別由RecordSets物件的RS(0)、RS(1)、RS(2)、RS(3)、RS(4) 取得。
RS.Fields.Count表示RecordSets物件的欄位數(shù),由「For i = 0 to RS.Fields.Count - 1」取得RS(i) 各欄位的資料。配合<TABLE>表格的HTML語(yǔ)法,將結(jié)果填入表格的各欄位當(dāng)中。
若還有下一筆資料,使用RS.MoveNext移到下一筆的位置。
程式碼,如下∶
<% ELSE %>
<FONT COLOR="#FF0000">
恭喜您, 帳號(hào) <% =Request.Form("ID3") %> <BR>
有成交, 如下表:<BR>
</FONT>
<TABLE COLSPAN=8 CELLPADDING=5 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>日期</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>股票</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>買賣</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>成交數(shù)量</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>成交價(jià)格</FONT></TD>
</TR>
<% Do While Not RS.EOF %>
<TR>
<% For i = 0 to RS.Fields.Count - 1 %>
<TD BGCOLOR="f7efde" VALIGN=TOP><FONT COLOR="#0000"><% = RS(i) %></FONT></TD>
<% Next %>
</TR>
<%
RS.MoveNext
Loop
RS.Close
Conn.Close
%>
</TABLE>
<% END IF
End Sub %>
最後,使用RS.Close關(guān)閉RecordSet,使用Conn.Close關(guān)閉資料庫(kù)。
全部的程式碼,如下∶
<HTML>
<HEAD>
<TITLE>線上股市買賣交易系統(tǒng)</TITLE>
<META HTTP-EQUIV="content-type" CONTENT="text/html;charset=big5">
</HEAD>
<BODY BGCOLOR=#FFFFFF>
<FONT SIZE=+2 COLOR="#0000FF">線上股市買賣交易系統(tǒng)</FONT>
<%
SELECT CASE Left(Request.Form("Action"),2)
CASE "委托"
AddStock()
CASE "取消"
DeleteStock()
CASE "查詢"
CheckStock()
CASE "成交"
CheckTrans()
END SELECT
Sub AddStock()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SNNO = YEAR(DATE()) & MONTH(DATE()) & DAY(DATE()) & HOUR(NOW) & MINUTE(NOW) & SECOND(NOW)
SQL = "INSERT INTO StockRequest(ID,TYPE,STOCK,QTY,PRICE,SN) VALUES('" & Request.Form("ID1") & "','" & LEFT(Request.Form("TYPE1"),2) & "','" & Request.Form("STOCK1") & "','" & Request.Form("QTY1") & "','" & Request.Form("PRICE1") & "','" & SNNO & "')"
Set RS = Conn.Execute(SQL)
%>
<HR>
<FONT COLOR="#0000FF">委托下單結(jié)果:</FONT><br>
<FONT COLOR="#0000FF">下單 OK ! 委托單代號(hào)為 <% =SNNO %></FONT>
<TABLE COLSPAN=8 CELLPADDING=1 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>帳號(hào)</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>買賣</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>股票代號(hào)</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>數(shù)量</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>價(jià)格</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>委托單代號(hào)</FONT></TD>
<TR>
</TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("ID1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =LEFT(Request.Form("TYPE1"),2) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("STOCK1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("QTY1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("PRICE1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =SNNO %></FONT></TD>
</TR>
</TABLE>
<%
Conn.Close
End Sub %>
<%
Sub DeleteStock()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT * FROM StockRequest WHERE SN = '" & Request.Form("SN1") & "'"
Set RS = Conn.Execute(SQL)
%>
<HR>
<FONT COLOR="#0000FF">取消委托結(jié)果:</FONT><br>
<%
IF RS.EOF THEN
'找不到 !
%>
<FONT COLOR="#FF0000">找不到委托單代號(hào) <% =Request.Form("SN1") %> !</FONT>
<% ELSE
'取消委托 !
%>
<FONT COLOR="#FF0000">委托單代號(hào) <% =Request.Form("SN1") %> 已經(jīng)取消 !</FONT>
<TABLE COLSPAN=8 CELLPADDING=1 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>帳號(hào)</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>買賣</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>股票代號(hào)</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>數(shù)量</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>價(jià)格</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>委托單代號(hào)</FONT></TD>
</TR>
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =RS(0) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =RS(1) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =RS(2) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =RS(3) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =RS(4) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =RS(5) %></FONT></TD>
</TR>
</TABLE>
<%
'StockRequest刪除一筆
SQL = "DELETE FROM StockRequest WHERE SN = '" & Request.Form("SN1") & "'"
Set RS = Conn.Execute(SQL)
END IF
Conn.Close
End Sub %>
<%
Sub CheckStock()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT * FROM StockRequest WHERE ID = '" & Request.Form("ID2") & "'"
Set RS = Conn.Execute(SQL)
%>
<HR>
<FONT COLOR="#0000FF">查詢委托單結(jié)果:</FONT><br>
<%
IF RS.EOF THEN
'找不到委托單 !
%>
<FONT COLOR="#FF0000">找不到委托單 !</FONT>
<% ELSE %>
<% '有委托單 ! %>
<FONT COLOR="#0000ff">委托單如下:</FONT>
<TABLE COLSPAN=8 CELLPADDING=5 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>帳號(hào)</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>買賣</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>股票代號(hào)</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>數(shù)量</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>價(jià)格</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>委托單代號(hào)</FONT></TD>
</TR>
<% j = 1 %>
<% Do While Not RS.EOF %>
<TR>
<% For i = 0 to RS.Fields.Count - 1 %>
<% If INT(j/2)*2 <> j Then %>
<TD BGCOLOR="E8FFFF" ALIGN=CENTER>
<FONT COLOR="#000000"><%= RS(i) %></FONT></TD>
<% Else %>
<TD ALIGN=CENTER BGCOLOR="#C0FFFF">
<FONT COLOR="#000000"><%= RS(i) %></FONT></TD>
<% END IF %>
<% Next %>
</TR>
<%
RS.MoveNext
j = j + 1
Loop
%>
</TABLE>
<% END IF
RS.Close
Conn.Close
End Sub %>
<%
Sub CheckTrans()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT DATE,STOCK,TYPE,QTY,PRICE FROM Stock WHERE ID=" & Request.Form("ID3")
Set RS = Conn.Execute(SQL)
%>
<HR>
成交查詢結(jié)果:<br>
<% IF RS.EOF THEN %>
<FONT COLOR="#0000FF">報(bào)歉 , 帳號(hào) <% =Request.Form("ID3") %> 未成交!</FONT>
<% ELSE %>
<FONT COLOR="#FF0000">
恭喜您, 帳號(hào) <% =Request.Form("ID3") %> <BR>
有成交, 如下表:<BR>
</FONT>
<TABLE COLSPAN=8 CELLPADDING=5 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>日期</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>股票</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>買賣</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>成交數(shù)量</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>成交價(jià)格</FONT></TD>
</TR>
<% Do While Not RS.EOF %>
<TR>
<% For i = 0 to RS.Fields.Count - 1 %>
<TD BGCOLOR="f7efde" VALIGN=TOP><FONT COLOR="#0000"><% = RS(i) %></FONT></TD>
<% Next %>
</TR>
<%
RS.MoveNext
Loop
RS.Close
Conn.Close
%>
</TABLE>
<% END IF
End Sub %>
<HR>
股市買賣委托, 請(qǐng)輸入以下資料:<br>
<form action="data13.asp" method="post">
<FONT COLOR="#FF8080"> </FONT>帳號(hào) (如123456):
<INPUT TYPE=TEXT VALUE="123456" NAME="ID1" SIZE=10><BR>
<FONT COLOR="#FF8080"> </FONT>買賣:
<select name="TYPE1">
<OPTION SELECTED>買進(jìn)
<OPTION>賣出
</select>
<br>
<FONT COLOR="#FF8080"> </FONT>股票代號(hào) (如2306):
<INPUT TYPE=TEXT VALUE="2306" NAME="STOCK1" SIZE=6><BR>
<FONT COLOR="#FF8080"> </FONT>數(shù)量:
<INPUT TYPE=TEXT VALUE="10" NAME="QTY1" SIZE=6><BR>
<FONT COLOR="#FF8080"> </FONT>價(jià)格:
<INPUT TYPE=TEXT VALUE="80" NAME="PRICE1" SIZE=6><BR>
<INPUT TYPE=submit VALUE="委托下單" name="Action"><p>
<HR WIDTH = 30% ALIGN=LEFT>
<FONT COLOR="#FF0000"> </FONT>委托單代號(hào):
<INPUT TYPE=TEXT NAME="SN1" SIZE=12>
<INPUT TYPE=submit VALUE="取消委托單" name="Action"><P>
<FONT COLOR="#0000FF"> </FONT>帳號(hào):
<INPUT TYPE=TEXT VALUE="123456" NAME="ID2" SIZE=10>
<INPUT TYPE=submit VALUE="查詢委托單" name="Action"><P>
<FONT COLOR="#00FF00"> </FONT>帳號(hào):
<INPUT TYPE=TEXT VALUE="123456" NAME="ID3" SIZE=10>
<INPUT TYPE=submit VALUE="成交查詢" name="Action">
</form>
<HR>
</BODY>
</HTML>