三、ASP訪問數(shù)據(jù)庫步驟
在ASP中,使用ADO組件訪問后臺數(shù)據(jù)庫,可通過以下步驟進行:
1. 定義數(shù)據(jù)源
在WEB服務(wù)器上打開“控制面板”,選中“ODBC”,在“系統(tǒng)DSN”下選“添加”,選定你希望的數(shù)據(jù)庫種類、名稱、位置等。本文定義“SQL SERVER”,數(shù)據(jù)源為“HT”,數(shù)據(jù)庫名稱為“HTDATA”,腳本語言采用Jscript.
2. 使用ADO組件查詢WEB數(shù)據(jù)庫
1) 調(diào)用Server.CreateObject方法取得“ADODB.Connection”的實例,再使用Open方法打開數(shù)據(jù)庫:
conn = Server.CreateObject(“ADODB.Connection”)
conn.Open(“HT”)
2) 指定要執(zhí)行的SQL命令
連接數(shù)據(jù)庫后,可對數(shù)據(jù)庫操作,如查詢,修改,刪除等,這些都是通過SQL指令來完成的,如要在數(shù)據(jù)表signaltab中查詢代碼中含有“X”的記錄
sqlStr = “select * from signaltab where code like '%X%'”
rs = conn.Execute(sqlStr)
3) 使用RecordSet屬性和方法,并顯示結(jié)果
為了更精確地跟蹤數(shù)據(jù),要用RecordSet組件創(chuàng)建包含數(shù)據(jù)的游標,游標就是儲存在內(nèi)存中的數(shù)據(jù)。
rs = Server.CreateObject(“ADODB.RecordSet”)
rs.Open(sqlStr,conn,1,A)
注:A=1讀取
A=3 新增、修改、刪除
在RecordSet組件中,常用的屬性和方法有:
rs.Fields.Count: RecordSet對象的字段數(shù)。
rs(i)。Name: 第i個字段的名稱,i為0至rs.Fields.Count-1
rs(i): 第i個字段的數(shù)據(jù),i為0至rs.Fields.Count-1
rs(“字段名”): 指定字段的數(shù)據(jù)。
rs.Record.Count:游標中的數(shù)據(jù)記錄總數(shù)。
rs.EOF: 是否最后一條記錄。
rs.MoveFirst: 指向第一條記錄。
rs.MoveLast: 指向最后一條記錄。
rs.MovePrev: 指向上一條記錄。
rs.MoveNext: 指向下一條記錄。
rs.GetRows: 將數(shù)據(jù)放入數(shù)組中。
rs.Properties.Count:ADO的ResultSet或Connection的屬性個數(shù)。
rs.Properties(item)。Name:ADO的ResultSet或Connection的名稱。
rs.Properties: ADO的ResultSet或Connection的值。
rs.close(): 關(guān)閉連接。
4) 關(guān)閉數(shù)據(jù)庫
conn.close()
四、查詢WEB數(shù)據(jù)庫舉例
下面這段示例程序是訪問SQL SERVER數(shù)據(jù)庫的 signaltab表,表中有三個字段:code(代碼字段,字符型,3位),class(分類字段,字符型,10位),memo(備注字段,字符型,20位)。程序中數(shù)據(jù)源DSN:HT、用戶名:client、口令:passwd.
屏幕輸入頁面input.asp
<% @ language=javascript %>
<html>
<head>
<title>請輸入查詢條件PLEASE INPUT CONDITION</title>
</head>
<form action=shotquery.asp METHOD=“post” target=“_self”>
<input TYPE=“text” size=6 maxlength=3 NAME=signalCode VALUE=“代碼”> </font></p>
</center></div><p></p>
<input LANGUAGE=“JavaScript” TYPE=“submit” VALUE=“確認” NAME=“B1”
<input TYPE=“reset” VALUE=“清除”NAME=“B2”>
<input LANGUAGE=“JavaScript” TYPE=“button” NAME=“B3” VALUE=“返回”
ONCLICK=“window.history.back()”>
</font></p>
</center></div>
</form>
</body>
</html>
數(shù)據(jù)庫處理程序shotquery.asp
<!——#include virtual=“/master/lib.inc”——>
<script language=javascript runat=server>
var signalCode=Request.Form(“signalCode”);
dbConn = Server.CreateObject(“ADODB.Connection”);
dbConn.open(“DSN=HT;UID=client;PWD=passwd”);
rs = Server.CreateObject(“ADODB.RecordSet”);
var sqlStr = “select * from signaltab order by code”;
rs.open(sqlStr,dbConn,1);
if(rs.RecordCount < 1) {
Response.write(“<p> 無符合條件記錄</p>”);
Response.write(“<p><form> <input type='button' value=' 返回' onclick='window.history.back()' name='b1'></form></p>”);
}
else {
Response.write(“<P><center><B>數(shù)據(jù)查詢結(jié)果</B></center></P>”);
Response.write(“<tr><td><b>代碼</b></td><td><b>分類</b></td><td><b>備注</b></td>”);
for(var i = 1;i <= rs.Pagesize;i++) {
if(!rs.Eof) {
Response.write(“<td><span style='font-size:9t'>”+rs(“code”)+“</span></td>”);
Response.write(“<td><span style='font-size:9t'>”+rs(“class”)+“</span></td>”);
Response.write(“<td><span style='font-size:9t'>”+rs(“memo”)+“</span></td>”);
Response.write(“</tr>”);
rs.MoveNext();
}
else break;
}
Response.write(“</table></form>”);
rs.close();
dbConn.close();
}
</script>
特別聲明:1.凡本網(wǎng)注明稿件來源為“湖北自考網(wǎng)”的,轉(zhuǎn)載必須注明“稿件來源:湖北自考網(wǎng)(www.heywebguys.com)”,違者將依法追究責任;
2.部分稿件來源于網(wǎng)絡(luò),如有不實或侵權(quán),請聯(lián)系我們溝通解決。最新官方信息請以湖北省教育考試院及各教育官網(wǎng)為準!