1.Asp是Active Server Pages的簡稱,是解釋型的腳本語言環境; 2.Asp的運行需要Windows操作系統,9x下需要安裝PWS;而NT/2000/XP則需要安裝Internet Information Server(簡稱IIS); 3.Asp和jsp的腳本標簽是“<%%>”,php的則可以設定為多種; 4.Asp的注釋符號是“'”; 5.使用附加組件,可以擴展Asp的功能。 from www.49028c.com
例子:
HelloWorld_1.asp <%="Hello,world"%>
效果: Hello,world
HelloWorld_2.asp <% for i=1 to 10 response.write "Hello,world" next %>
'判斷用戶輸入是否正確 if user_id="" then response.write "User_id is null,please check it" response.end end if if user_name="" then response.write "User_name is null,please check it" response.end end if
效果: 當訪問http://10.1.43.238/course/request_url.asp?user_name=j時: User_id is null,please check it 當訪問http://10.1.43.238/course/request_url.asp?user_name=j&user_id=my_id時: my_id j
'判斷用戶輸入是否正確 if user_id="" then response.write "User_id is null,please check it" response.end end if if user_name="" then response.write "User_name is null,please check it" response.end end if
use_db_1.asp <% Set conn=Server.CreateObject("ADODB.Connection") '創建連接數據庫的對象 conn.Open "course_dsn","course_user","course_password" '使用該對象連接數據庫 Set rs=Server.CreateObject("ADODB.RecordSet") '創建記錄集對象 rs.Open "select * from user_info",conn,1,1 '使用記錄集對象打開數據庫 if rs.recordcount>0 then '如果有記錄 response.write "User_id User_name<br>" for i=1 to rs.recordcount '循環讀取所有紀錄 response.write rs("id")&" "&rs("user_name")&"<br>" '向瀏覽器輸出紀錄的字段 rs.movenext '指針下移一行 if rs.eof then exit for '如果到達記錄集底部則退出循環 next end if %>
效果: User_id User_name 1 ahyi 3 test
⑵.只使用connection操作數據庫:
use_db_2.asp <% Set conn=Server.CreateObject("ADODB.Connection") '創建連接數據庫的對象 conn.Open "course_dsn","course_user","course_password" '使用該對象連接數據庫 conn.execute "delete from user_info" %>
CREATE PROCEDURE [output_1] @sid int output AS set @sid=2
CREATE PROCEDURE [return_1] (@user_name varchar(40),@password varchar(20)) AS if exists(select id from user_info where user_name=@user_name and password=@password) return 1 else return 0
CREATE PROCEDURE [user_info_1] (@user_name varchar(40),@password varchar(20)) AS select id from user_info where user_name=@user_name and password=@password
CREATE PROCEDURE [user_info_2] (@user_name varchar(40),@password varchar(20)) AS SET XACT_ABORT ON BEGIN TRANSACTION delete from user_info where user_name=@user_name and password=@password COMMIT TRANSACTION SET XACT_ABORT OFF
CREATE PROCEDURE [user_info_3] AS select * from user_info
②.在Asp中調用
use_proc.asp <!-- #include virtual="/adovbs.inc" --> <% Set conn=Server.CreateObject("ADODB.Connection") conn.Open "course_dsn","course_user","course_password"
'使用recordset調用帶兩個輸入參數和返回紀錄集的存儲過程 'CREATE PROCEDURE [user_info_1] '(@user_name varchar(40),@password varchar(20)) 'AS 'select id from user_info where user_name=@user_name and password=@password response.write "普通的調用方法:<br>" set rs=server.createobject("adodb.recordset") sql="user_info_1 '"&request.querystring("user_name")&"','"&request.querystring("password")&"'" rs.open sql,conn,1,1 response.write rs("id")&"<br>" rs.close
'使用recordset調用無輸入參數,返回紀錄集的存儲過程,可以使用recordcount等屬性 'CREATE PROCEDURE [user_info_3] AS 'select * from user_info response.write "<br>返回紀錄集,可以使用recordcount等屬性:" sql="exec user_info_3" rs.open sql,conn,1,1 for i=1 to rs.recordcount response.write "<br>"&rs("user_name") rs.movenext next rs.close set rs=nothing
'使用command調用帶輸出參數的存儲過程 'CREATE PROCEDURE [output_1] '@sid int output 'AS 'set @sid=2 response.write "<br><br>調用帶輸出參數的存儲過程:<br>" set cmd=server.createobject("adodb.command") cmd.activeconnection=conn cmd.commandtext = "output_1" cmd.parameters.append cmd.createparameter("@sid",adinteger,adparamoutput) cmd("@sid")=10 cmd.execute() bbb=cmd("@sid") response.write bbb&"<br>" set cmd=nothing
'使用command調用帶兩個輸入參數和返回值的存儲過程 'CREATE PROCEDURE [return_1] '(@user_name varchar(40)) 'AS 'if exists(select id from user_info where user_name=@user_name) 'return 1 'else 'return 0 response.write "<br>調用帶兩個輸入參數和返回值的存儲過程:<br>" set cmd=server.createobject("adodb.command") cmd.activeconnection=conn cmd.commandtype = adcmdstoredproc cmd.commandtext = "return_1" cmd.parameters.append cmd.createparameter("@return_value",adinteger,adparamreturnvalue) cmd.parameters.append cmd.createparameter("@user_name",advarchar,adparaminput,40) cmd.parameters.append cmd.createparameter("@password",advarchar,adparaminput,20) cmd("@user_name")="tuth" cmd("@password")="yyuyu" cmd.execute() rrr=cmd("@return_value") response.write rrr set cmd=nothing
例子: use_transaction_1.asp <% 'Asp中使用事務 Set conn=Server.CreateObject("ADODB.Connection") conn.Open "course_dsn","course_user","course_password" conn.begintrans '開始事務
sql="delete from user_info" set rs=server.createobject("adodb.recordset") rs.open sql,conn,3,3 if conn.errors.count>0 then '有錯誤發生 conn.rollbacktrans '回滾 set rs=nothing conn.close set conn=nothing response.write "交易失敗,回滾至修改前的狀態!" response.end else conn.committrans '提交事務 set rs=nothing conn.close set conn=nothing response.write "交易成功!" response.end end if %>
②.數據庫級的事務
i.創建存儲過程
CREATE PROCEDURE [user_info_2] (@user_name varchar(40),@password varchar(20)) AS SET XACT_ABORT ON BEGIN TRANSACTION delete from user_info where user_name=@user_name and password=@password COMMIT TRANSACTION SET XACT_ABORT OFF
ii.在Asp中調用
use_transaction_2.asp <% Set conn=Server.CreateObject("ADODB.Connection") conn.Open "course_dsn","course_user","course_password"
db_page.asp <% on error resume next Set conn=Server.CreateObject("ADODB.Connection") '創建連接數據庫的對象 conn.Open "course_dsn","course_user","course_password" '使用該對象連接數據庫 set rs=server.createObject("adodb.recordset") sql="select * from user_info order by id desc" rs.open sql,conn,1,1
if rs.recordcount>0 then '如果有記錄 rs.pagesize=2 '每頁最多顯示2條紀錄 '從URL獲取當前要顯示的頁 page=cint(request("page")) '頁面參數異常處理 if page="" then page=1 if page<1 then page=1 if page>= rs.pagecount then page=rs.pagecount rs.absolutepage=page '當前頁為page參數指定的頁 for i=1 to rs.pagesize '根據pagesize參數的大小循環顯示當前頁中的紀錄 response.write "User_id:"&rs("id")&"<br>" response.write "User_name:"&rs("user_name")&"<br><br>" rs.movenext '紀錄指針下移 if rs.eof then exit for '如果到達紀錄集底部則退出循環 next end if
'顯示翻頁按鈕 if page>1 then response.write "<a href="&request.servervariables("document_name")&"?page=1>第一頁</a> " response.write "<a href="&request.servervariables("document_name")&"?page="&(page-1)&">上一頁</a> " end if if page<>rs.pagecount then response.write "<a href="&request.servervariables("document_name")&"?page="&(page+1)&">下一頁</a> " response.write "<a href="&request.servervariables("document_name")&"?page="&rs.pagecount&">最后一頁</a> " end if response.write"頁碼:"&page&"/"&rs.pagecount
'關閉對象,釋放內存 rs.close set rs=nothing conn.close set conn=nothing %>