"if not rs.eof and not rs.bof then"怎麼理解?見asp執行個體

來源:互聯網
上載者:User
誰能詳細解釋asp中"if not rs.eof and not rs.bof then"怎麼理解? 2007-06-10 21:11 zhbxj2002  |  分類:其他程式設計語言  |  瀏覽4349次
誰能詳細解釋asp中"if not rs.eof and not rs.bof then"怎麼理解?

 
rs.eof=true時表明指標已移到最後記錄,不能往下移(不等同是最後一條記錄)rs.bof=true時表時指標已移到最前記錄,不能往上移(同樣,不等同是第一條記錄)設某資料庫共7條記錄,當在第N條(N=1,2,,,,7)時,rs.bof=false,rs.eof=false但第一條,又要往上移時,rs.bof=true,表示不能往上移同理可理解rs.eofif not rs.eof and not rs.bof then    語句塊end if就是:只要還沒到達資料頂部和底部,就執行語句塊
 
例子::
 

ASP與資料庫-串連、寫入、修改、刪除、顯示代碼屬性與方法

        PageCount 屬性: 決定 Recordset 對象包括多少“頁”的資料。         這裡的“頁”是資料記錄的集合,大小等於 PageSize 屬性的設定,即使最後一頁的記錄數比 PageSize 的值少,最後一頁也算是 PageCount 的一頁。必須注意也並不是所有的資料提供者都支援此項屬性。       PageSize 屬性:顯示 Recordset 對象每一頁顯示的記錄數。           PageSize 屬性是決定 ADO 存取資料庫時如何分頁顯示的關鍵,使用它就可以決定多少記錄組成一個邏輯上的“一頁”。設定並建立一個頁的大小,從而允許使用 AbsolutePage 屬性移到其它邏輯頁的第一條記錄。PageSize 屬效能隨時被設定。     RecordCount 屬性:顯示 Recordset 對象記錄的總數。     rs.RecordCount:遊標中的資料記錄總數。     rs.MoveFirst: 指向第一條記錄。           rs.Move(6): 移動到第6條記錄。     rs.MoveLast: 指向最後一條記錄。     rs.MovePrev: 指向上一條記錄。     rs.MoveNext: 指向下一條記錄。     rs.GetRows: 將資料放入數組中

Recordset對象的Open函數:    Rs.Open 資料表名稱或SQL指令,Connection對象,Recordset類型,鎖定類型  參數一:若指定成資料表名稱,則開啟整個資料表,若指定成Select指令,則所建立的Recordset對象是Select指令選取的資料記錄的結果。  參數二:傳入某一個已開啟的資料庫的Connection對象。  參數三:是Recordset類型,它含有下表的四種設定值:  Recordset類型的設定值 意義  AdOpenForwardOnly(=0) 唯讀,且當前資料記錄只能向下移動  AdOpenStatic(=3) 唯讀,當前資料記錄可自由移動  AdOpenKeyset(=1) 可讀寫,當前資料記錄可自由移動  AdOpenDynamic(=2) 可讀寫,當前資料記錄可自由移動  AdOpenKeyset和AdOpenDynamic的差別只表現在多人共用資料庫時,若以AdOpenKeyset 模式開啟資料表,則無法看到其他人新增的資料記錄(除非重新啟動),如果是以AdOpenDynamic模式開啟資料庫,則可以看到其他人新增的資料記錄。  參數四:是鎖定類型,它同樣含有四種設定值,見下表:  鎖定類型的設定值 意義  adLockReadOnly(=1) 預設值,用來開啟唯讀資料記錄  adLockPessimistic(=2) 悲觀鎖定  adLockOptimistic(=3) 樂觀鎖定  adLockBatchOptimistic(=4) 批次樂觀鎖定

資料庫連接-------------------------------- MS Access資料庫連接

用DSN串連並且沒有使用者名稱和密碼:

<% set conn=Server.CreateObject("ADODB.Connection") conn.open "YourDSNName" %>

用DSN串連並且有使用者名稱和密碼:

<% set conn=Server.CreateObject("ADODB.Connection") conn.open "YourDSNName","username","password" %>

用實際的資料庫絕對路徑串連:

<% Set conn=Server.CreateObject("ADODB.Connection") Strconn="DRIVER={Microsoft Access Driver (*.mdb)}; " Strconn=Strconn & "DBQ=e:\yanhang\database.mdb"  conn.Open Strconn %>

用實際的資料庫相對路徑串連:

<% Set conn=Server.CreateObject("ADODB.Connection") Strconn="DRIVER={Microsoft Access Driver (*.mdb)}; " Strconn=Strconn & "DBQ=" & Server.MapPath("/database/yanhang.mdb") conn.Open Strconn %>

MS SQL Server資料庫連接

用DSN串連:

<% set conn=Server.CreateObject("ADODB.Connection") conn.open "DSN=MyDSN;UID=user;PWD=password;DATABASE=databasename" %>

不用DSN串連:

<% Set conn=Server.CreateObject("ADODB.Connection") DSNtemp="DRIVER={SQL Server};SERVER=ServerName;UID=USER;PWD=password;DATABASE=databasename" conn.open DSNtemp %>

Oracle資料庫連接:

<% set conn=server.createobject("adodb.connection") conn.cursorlocation=adUseClient DSNTemp="Provider=MSDAORA.1;Password=xxxxx;User ID=yanhang;Data Source=xxx.world" conn.open DSNtemp %>

資料寫入…………………………………………………………………………………… <!--#i nclude file="common/conn.asp"--> <% set rs=server.createobject("adodb.recordset") sql="select * from online" rs.open sql,conn,3,2 rs.addnew rs("name")=request("name") rs("Tel")=request("tel") rs("fax")=request("fax") rs("mail")=request("email") rs("code")=request("zip") rs("content")=request("contents") rs("Address")=request("Address") rs.update rs.close %>

資料修改…………………………………………………………………………………… <% if request("action")="edit" then '判斷是否修改

'取得表單傳遞的資料 member_name=Trim(Request.Form("member_name")) member_pwd=Trim(Request.Form("member_pwd")) question=Trim(Request.Form("question")) answer=Trim(Request.Form("answer")) realname=Trim(Request.Form("realname")) sex=Trim(Request.Form("sex")) zip=Trim(Request.Form("zip")) address=Trim(Request.Form("address")) tel=Trim(Request.Form("tel")) fax=Trim(Request.Form("fax")) mobile=Trim(Request.Form("mobile")) email=Trim(Request.Form("email")) web=Trim(Request.Form("web")) vip=request.form("vip") remark=Trim(Request.Form("remark"))

sql="select * from member where m_id="&m_id set rs=server.createobject("adodb.recordset") rs.open sql,conn,1,3

rs("member_name")=member_name rs("answer")=answer rs("question")=question rs("member_pwd")=member_pwd rs("realname")=realname rs("sex")=sex rs("zip")=zip rs("tel")=tel rs("mobile")=mobile rs("fax")=fax rs("address")=address rs("email")=email rs("web")=web rs("vip")=vip rs("remark")=remark

rs.update rs.close set rs=nothing

call ok("資料修改成功。","edit_member.asp?m_id="&m_id)

end if %>

資料刪除--數字欄位…………………………………………………………………………………… <% set rs=server.createobject("adodb.recordset") sql="select * from pay where ID =1" rs.open sql,conn,1,3 if not rs.eof and not rs.bof then rs.movefirst do while not rs.eof rs.delete rs.movenext loop end if rs.close %>

資料刪除--字串欄位…………………………………………………………………………………… <% set rs=server.createobject("adodb.recordset") sql="select * from pay where namer ='aaa'" rs.open sql,conn,1,3 if not rs.eof and not rs.bof then rs.movefirst do while not rs.eof rs.delete rs.movenext loop end if rs.close %>

資料顯示…………………………………………………………………………………… <% Lei="行業資訊" '設定顯示資訊類別 set rs=server.CreateObject("adodb.Recordset") sql="Select top 20 * from News where Lei <> '"&Lei&"' order by ID desc" rs.open sql,conn,1,1 if rs.eof then '判斷資料庫內有無資訊,防止讀取錯誤 %> 暫無資訊! <% else  do while not rc.eof %> <%if len(rs("Title")) > 10 then Response.write left(rs("Title"),10)&"..." else Response.write rs("Title") end if%> <% '迴圈顯示資料 rc.movenext  loop rc.close  set rc=nothing end if%>

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.