rs.open sql,conn,a,b
參數(shù)a為設定游標的類型,其取值為:
0 僅向前游標,只能向前瀏覽記錄,不支持分頁、recordset、bookmark
1 鍵集游標,其他用戶對記錄說做的修改將反映到記錄集中,但其他用戶增加或刪除記錄不會反映到記錄集中。支持分頁、recordset、bookmark
2 動態(tài)游標功能最強,但耗資源也最多。用戶對記錄說做的修改,增加或刪除記錄都將反映到記錄集中。支持全功能瀏覽。
3 靜態(tài)游標,只是數(shù)據(jù)的一個快照,用戶對記錄說做的修改,增加或刪除記錄都不會反映到記錄集中。支持向前或向后移動
參數(shù)b為記錄集的鎖定類型,其取值為:
1 鎖定類型,默認的,只讀,不能作任何修改
2 當編輯時立即鎖定記錄,最安全的方式
3 只有在調(diào)用update方法時才鎖定記錄集,而在此前的其他操作仍可對當前記錄進行更改、插入和刪除等
4 當編輯時記錄不會被鎖定,而更改、插入和刪除是在批處理方式下完成的
打開數(shù)據(jù)記錄集方法其實不止一種,但是我們用的最多的就是
rs.open sql,1,1的方法,可是后面的數(shù)字參數(shù)很多人不解其意,下面我們來介紹一下。
>>>使用心得
>>>只讀??礄?quán)限。
>>>看游標,用1,3就好。
>>>3,3耗資源
>>>只讀1,1
ado中的addnew使用說明
rs.addnew
rs("username")=username
rs("userpassword")=password
rs("age")=age
rs("sex")=sex
rs.update
[hilitecolor=#ffffff]記錄集操作示例大全
<%
'on error resume next
dim connstr,conn
connstr="provider=microsoft.jet.oledb.4.0;data source=" & server.mappath("datadb/#ip.mdb")
set conn=server.createobject("adodb.connection")
conn.open connstr
%>
'== 讀取記錄
聲明方法一
''set rs=server.createobject("adodb.recordset")
''rs.open "select id,title from joke where id="&id&"",conn,1,1
聲明方法二
set wrs=conn.execute("select * from zm_page where tid=-1 order by ord asc")[/hilitecolor]
[hilitecolor=#ffffff]開始記錄操作
do while not wrs.eof
if wrs("url")<>"" then
main=main&""&wrs("name")&""&vbcrlf
else
main=main&""&wrs("name")&""&vbcrlf
end if
wrs.movenext
loop
main=main&""
wrs.close
set wrs=nothing[/hilitecolor]
建立記錄集對象:
set rs=server.createobject("adodb.recordset")
rs.open sql語句,conn,3,2
sql常用命令使用方法:
(1) 數(shù)據(jù)記錄篩選:
sql="select * from 數(shù)據(jù)表 where 字段名=字段值 order by 字段名 [desc]"
sql="select * from 數(shù)據(jù)表 where 字段名 like '%字段值%' order by 字段名 [desc]"
sql="select top 10 * from 數(shù)據(jù)表 where 字段名 order by 字段名 [desc]"
sql="select * from 數(shù)據(jù)表 where 字段名 in ('值1','值2','值3')"
sql="select * from 數(shù)據(jù)表 where 字段名 between 值1 and 值2"
(2) 更新數(shù)據(jù)記錄:
sql="update 數(shù)據(jù)表 set 字段名=字段值 where 條件表達式"
sql="update 數(shù)據(jù)表 set 字段1=值1,字段2=值2 …… 字段n=值n where 條件表達式"
(3) 刪除數(shù)據(jù)記錄:
sql="delete from 數(shù)據(jù)表 where 條件表達式"
sql="delete from 數(shù)據(jù)表" (將數(shù)據(jù)表所有記錄刪除)
(4) 添加數(shù)據(jù)記錄:
sql="insert into 數(shù)據(jù)表 (字段1,字段2,字段3 …) valuess (值1,值2,值3 …)"
sql="insert into 目標數(shù)據(jù)表 select * from 源數(shù)據(jù)表" (把源數(shù)據(jù)表的記錄添加到目標數(shù)據(jù)表)
(5) 數(shù)據(jù)記錄統(tǒng)計函數(shù):
avg(字段名) 得出一個表格欄平均值
count(*|字段名) 對數(shù)據(jù)行數(shù)的統(tǒng)計或?qū)δ骋粰谟兄档臄?shù)據(jù)行數(shù)統(tǒng)計
max(字段名) 取得一個表格欄最大的值
min(字段名) 取得一個表格欄最小的值
sum(字段名) 把數(shù)據(jù)欄的值相加
引用以上函數(shù)的方法:
sql="select sum(字段名) as 別名 from 數(shù)據(jù)表 where 條件表達式"
set rs=conn.excute(sql)
用 rs("別名") 獲取統(tǒng)的計值,其它函數(shù)運用同上。
(5) 數(shù)據(jù)表的建立和刪除:
create table 數(shù)據(jù)表名稱(字段1 類型1(長度),字段2 類型2(長度) …… )
例:create table tab01(name varchar(50),datetime default now())
drop table 數(shù)據(jù)表名稱 (永久性刪除一個數(shù)據(jù)表)
記錄集對象的方法:
rs.movenext 將記錄指針從當前的位置向下移一行
rs.moveprevious 將記錄指針從當前的位置向上移一行
rs.movefirst 將記錄指針移到數(shù)據(jù)表第一行
rs.movelast 將記錄指針移到數(shù)據(jù)表最后一行
rs.absoluteposition=n 將記錄指針移到數(shù)據(jù)表第n行
rs.absolutepage=n 將記錄指針移到第n頁的第一行
rs.pagesize=n 設置每頁為n條記錄
rs.pagecount 根據(jù) pagesize 的設置返回總頁數(shù)
rs.recordcount 返回記錄總數(shù)
rs.bof 返回記錄指針是否超出數(shù)據(jù)表首端,true表示是,false為否
rs.eof 返回記錄指針是否超出數(shù)據(jù)表末端,true表示是,false為否
rs.delete 刪除當前記錄,但記錄指針不會向下移動
rs.addnew 添加記錄到數(shù)據(jù)表末端
rs.update 更新數(shù)據(jù)表記錄
該文章在 2010/7/3 15:04:31 編輯過