隨著因特網(wǎng)的發(fā)展,在網(wǎng)絡(luò)環(huán)境中,數(shù)據(jù)庫(kù)應(yīng)用漸漸向操作簡(jiǎn)單、功能實(shí)用的方向發(fā)展。本文介紹如何利用ASP技術(shù)實(shí)現(xiàn)對(duì) 數(shù)據(jù)庫(kù)進(jìn)行在線維護(hù)的方法,并給出了各種功能鍵的實(shí)現(xiàn)過(guò)程。 實(shí)現(xiàn)功能 數(shù)據(jù)庫(kù)管理員可在網(wǎng)上直接維護(hù)數(shù)據(jù)庫(kù)。在數(shù)據(jù)查詢與數(shù)據(jù)庫(kù)維護(hù)界面中(見圖1),通過(guò)復(fù)選框選取所要操作的數(shù)據(jù)行, 并在功能鍵區(qū)通過(guò)單選按鈕選取所要進(jìn)行的操作,然后按“提交”按鈕,即可進(jìn)行所需操作,并得到返回信息(見圖2)
圖1 數(shù)據(jù)查詢與數(shù)據(jù)庫(kù)維護(hù)界面
圖2 返回信息提示界面
實(shí)現(xiàn)環(huán)境如下: 客戶端:Windows 98 操作系統(tǒng)+I(xiàn)E 5.0瀏覽器 服務(wù)器端:SQL Server 7.0數(shù)據(jù)庫(kù) 網(wǎng)站應(yīng)用程序開發(fā)環(huán)境:Active Server Pages (ASP) 網(wǎng)頁(yè)制作開發(fā)環(huán)境:Microsoft FrontPage 2000 編程實(shí)現(xiàn) 首先,用FrontPage 2000編制數(shù)據(jù)查詢與數(shù)據(jù)庫(kù)維護(hù)界面,通過(guò)與后臺(tái)SQL Server數(shù)據(jù)庫(kù)standard建立關(guān)聯(lián),從數(shù)據(jù) 庫(kù)表中查取數(shù)據(jù),生成數(shù)據(jù)集合rs。為加快程序訪問速度,可以將其保存在session對(duì)象rs1中。部分代碼如下: <% sql=“select * from inform order by pdate DESC” Set rs=Server.CreateObject(“ADODB.Recordset”) rs.Open sql,“Driver={SQL Server};Server= (local);Database=info;UID=user;PWD=password;”,3,2 set session(“rs1”)=rs %> 插入一個(gè)Form,添加“插入”、“刪除”、“修改”等功能鍵,并將功能鍵處的單選按鈕的組名稱設(shè)為edit,按鈕值分 別對(duì)應(yīng)為“insert”、“delete”、“update”。 然后,編寫ASP程序tzwh1.asp 文件。從session 中讀取數(shù)據(jù),根據(jù)數(shù)據(jù)項(xiàng)用split函數(shù)將其分開,轉(zhuǎn)化為一個(gè)數(shù)組進(jìn) 行處理,并用trim函數(shù)去掉數(shù)據(jù)前后空格。程序部分代碼如下: <% set rs=session(“rs1”) edit=trim(Request(“edit”)) id=“, ”&trim(Request(“id”))&“, ” eno=split(trim(Request(“NO”)), “, ”) etitle=split(trim(Request(“title”)), “, ”) epdate=split(trim(Request(“pdate”)), “, ”) ewriter=split(trim(Request(“writer”)), “, ”) econtent=split(trim(Request(“content”)) , “, ”) %> 最后,實(shí)現(xiàn)功能鍵。功能鍵的選擇用case 語(yǔ)句實(shí)現(xiàn)。每一個(gè)實(shí)現(xiàn)過(guò)程中,利用inStr比較函數(shù)將讀出來(lái)的eno與數(shù)據(jù)項(xiàng) 的標(biāo)識(shí)號(hào)id相比較,可識(shí)別出所選的復(fù)選框是否有效。for循環(huán)體的下界采用Ubound函數(shù),避免了網(wǎng)頁(yè)數(shù)據(jù)的提取錯(cuò)誤。部 分程序代碼如下: <% select case edit case “insert” for i=0 to Ubound(eno) if inStr(id,“, ”&trim(eno(i))&“,”)>0 then rs.AddNew rs(“title”)=trim(etitle(i)) rs(“pdate”)=trim(epdate(i)) rs(“writer”)=trim(ewriter(i)) rs(“content”)=trim(econtent(i)) rs.Update %> <tr> <td align=“center”><% =rs(“pdate”) %>.</td> <td><font color=“#008080”><% =rs(“title”) %>.</font></td> <td><font color=“#008080”>插入新記錄成功!</font></td> </tr> <% End if Next%> <% case “delete” for i=0 to 9 if inStr(id,“, ”&trim(rs(“id”))&“,” )>0 then%> <tr> <td align=“center”><% =rs(“pdate”) %>.</td> <td><% =rs(“title”) %>.</td> <td><font color=“#FF0000”>記錄刪除成功!</font></td> </tr> <% rs.delete 1 End if rs.movenext if rs.eof then Exit for End if Next case “update” for i=0 to 9 if inStr(id,“,”&trim(rs(“id”))&“,”)>0 then rs(“title”)=trim(etitle(i)) rs(“pdate”)= trim(epdate(i)) rs(“writer”)= trim(ewriter(i)) rs(“content”)= trim(econtent(i)) rs.Update %> <tr> <td align=“center”><% =rs(“pdate”) %>.</td> <td><% =rs(“title”) %>.</td> <td><font color=“#0000FF”>記錄修改成功!</font></td> </tr> <% End if rs.movenext if rs.eof then Exit for End if Next end select %>
|