明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

ASP編寫數據庫維護程序

[摘要]ASP(Active Server Pages)是Microsoft公司動態(tài)訪問網絡數據庫 的最新技術,目前在Web開發(fā)中得到越來越廣泛的應用。ASP編程非常靈 活,本文通過開發(fā)一個數據庫維護程序,講述一下ASP的編程方法。 開發(fā)運行環(huán)境 Oracle服務器:操作系統(tǒng)為UNIX,安裝了Oracle...

ASP(Active Server Pages)是Microsoft公司動態(tài)訪問網絡數據庫
的最新技術,目前在Web開發(fā)中得到越來越廣泛的應用。ASP編程非常靈
活,本文通過開發(fā)一個數據庫維護程序,講述一下ASP的編程方法。
開發(fā)運行環(huán)境
Oracle服務器:操作系統(tǒng)為UNIX,安裝了Oracle8數據庫。
Web服務器:奔騰586,操作系統(tǒng)為NT4.0,在其上安裝了Web Server
IIS4.0、Oracle Net8 for Client,并創(chuàng)建好了和Oracle8數據庫的OD
BC接口。
客戶機:Win 95/98操作系統(tǒng),普通瀏覽器(Netscape4、IE4或以
上版本),并安裝開發(fā)工具Frontpage 98。
系統(tǒng)總體網絡協(xié)議為TCP/IP。
Web服務器上ODBC的配置
首先在Web服務器Windows NT上安裝訪問數據庫的ODBC驅動程序,
利用ODBC檢測工具軟件測試與數據庫是否連通(運行Oracle ODBC TEST
)。連通后,在NT的控制面版中ODBC的正確配置舉例如下:microsoft
odbc for oracle安裝 數據源名稱(即odbc的名字) infosystem 描
述(d) 信息 oracle用戶名稱(u) user—name oracle用戶密碼 use
r—passwd 服務器(s) ora8
編寫源代碼
數據庫的維護包括增加、刪除、修改、保存和查詢操作。下邊這段
程序是對Oracle用戶為user—name(密碼為user—passwd)中的表tab
—code(編碼庫)進行維護,tab—code有兩個字段,即bm(編碼字段,
字符型,5位)和mc(名稱字段,字符型,20位)。
1.與數據庫連接,定義子例程:
<%'賦初值%>
<% mc=Request("mc") %>
<%'連接源數據庫%>
<%
Set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "infosystem","user—name","user—passwd"
'參數的含義見上表
set bmrs = Conn.Execute("SELECT bm FROM bmb where mc=' "&m
c&" ' ")
temp1 = bmrs("bm")
sql—1 = request("sql—1")
if sql—1 = " " then
sql—1="SELECT bm,mc FROM table—code WHERE bm like ' " &
temp1 & "%' order by bm"
end if
Call treat()
%>
<%
Sub Reset()
bm = " "
temp2 = " "
End Sub
%>
<%
Call Reset()
num—recn = Conn.Execute("SELECT Max(bm) FROM table—code
WHERE bm like ' " & temp1 & "%' ")
%>
<%
Sub treat()
Set num—recn = Conn.Execute(sql—1)
if num—recn.eof then
else
sum—recn = 0
Do While Not num—recn.EOF
num—recn.MoveNext
sum—recn = sum—recn+1
Loop
if sum—recn <> 0 then
sele—recn=sum—recn
num—recn.MoveFirst
num—recn.Move(sum—recn-1)
Call extract()
end if
end if
End Sub
%>
<%
Sub extract()
bm = num—recn("bm")
temp2 = num—recn(1)
num—recn.Close
End Sub
%>
2.增加一條記錄:
<%
sum—recn =sum—recn + 1
bm = Request("bm")
temp2 = Request("temp2")
Insertsql = "INSERT INTO table—code(bm,mc) VALUES (' " &
bm & " ',' " & temp2 & " ')"
Set Insertrs = Conn.Execute(Insertsql)
%>
3.刪除當前記錄:
<%bm = Request("bm")
set delrs = Conn.Execute("Delete From table—code where bm
=' " & bm &" ' ")
Call treat()
%>
4.更新當前記錄后入庫(提交更新過的記錄):
<%
bm = Request("bm")
temp2 = Request("temp2")
UpdateSQL = "UPDATE table—code SET mc=' " & temp2 & " ' w
here bm=' " & bm &" ' "
Set UpdateRS=Conn.Execute(UpdateSQL)
%>
5.設置查詢條件(內容),輸出查詢結果:
<%
Call Reset()
temp2 = Request("temp2")
sql—1="SELECT bm,mc FROM table—code WHERE mc like ' " &
temp2 & "%' order by bm"
call treat()
%>
'到第一條記錄
<%
Set num—recn = Conn.Execute(sql—1)
sum—recn = Request("sum—recn")
sele—recn=1
Call extract()
%>
<%
'查找前一條記錄
Set num—recn = Conn.Execute(sql—1)
sele—recn = Request("sele—recn")
sum—recn = Request("sum—recn")
if sele—recn >1 then
sele—recn = sele—recn-1
num—recn.Move(sele—recn-1)
end if
Call extract()
%>
<%
'查找下一條記錄
Set num—recn = Conn.Execute(sql—1)
sele—recn = Request("sele—recn")
sum—recn = Request("sum—recn")
if CInt(sele—recn) < CInt(sum—recn) then
sele—recn=sele—recn+1
num—recn.Move(sele—recn-1)
else
num—recn.MoveFirst
num—recn.Move(sum—recn-1)
end if
Call extract()
%>
<%
'到最后一條記錄
Call treat()
%>
開發(fā)過程中遇到的問題及解決方法
1.用Frontpage98配合ASP技術的開發(fā)模式,雖然不是很標準,但是
編程效率高,而且簡單易行。而用Studio6.0中的INTER DEV進行編程,
應該是最標準的,但其編程復雜,維護難度大。
為了提高效率和保持代碼的正確性,我們可用記事本打開ASP程序
,將部分代碼輸入或粘貼上去,從而避免程序代碼的丟失或篡改。
2.有時ASP程序訪問數據庫時,如果遇到網絡瓶頸等因素,速度會
變慢,此時往往會返回“運行超時”的錯誤,解決此問題的方法是,將
延時時間設得足夠大,如:
<%server.scripttimeout=10000%>(出處:熱點網絡)