top
Loading...
利用ASP在線維護數據庫
隨著因特網的發展,在網絡環境中,數據庫應用漸漸向操作簡單、功能實用的方向發展。本文介紹如何利用ASP技術實現對
數據庫進行在線維護的方法,并給出了各種功能鍵的實現過程。
實現功能
數據庫管理員可在網上直接維護數據庫。在數據查詢與數據庫維護界面中(見圖1),通過復選框選取所要操作的數據行,
并在功能鍵區通過單選按鈕選取所要進行的操作,然后按“提交”按鈕,即可進行所需操作,并得到返回信息(見圖2)

圖1 數據查詢與數據庫維護界面

圖2 返回信息提示界面

實現環境如下:
客戶端:Windows 98 操作系統+IE 5.0瀏覽器
服務器端:SQL Server 7.0數據庫
網站應用程序開發環境:Active Server Pages (ASP)
網頁制作開發環境:Microsoft FrontPage 2000
編程實現
首先,用FrontPage 2000編制數據查詢與數據庫維護界面,通過與后臺SQL Server數據庫standard建立關聯,從數據
庫表中查取數據,生成數據集合rs。為加快程序訪問速度,可以將其保存在session對象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
%>
插入一個Form,添加“插入”、“刪除”、“修改”等功能鍵,并將功能鍵處的單選按鈕的組名稱設為edit,按鈕值分
別對應為“insert”、“delete”、“update”。
然后,編寫ASP程序tzwh1.asp 文件。從session 中讀取數據,根據數據項用split函數將其分開,轉化為一個數組進
行處理,并用trim函數去掉數據前后空格。程序部分代碼如下:
<% 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”)) , “, ”)
%>
最后,實現功能鍵。功能鍵的選擇用case 語句實現。每一個實現過程中,利用inStr比較函數將讀出來的eno與數據項
的標識號id相比較,可識別出所選的復選框是否有效。for循環體的下界采用Ubound函數,避免了網頁數據的提取錯誤。部
分程序代碼如下:
<% 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
%>
北斗有巢氏 有巢氏北斗