發(fā)一個(gè)ASP的ADODB類代碼
2024-05-04 11:01:07
供稿:網(wǎng)友
反正我現(xiàn)在用這個(gè)做了很多站,自己覺(jué)得還是滿有用的,所以拿出來(lái)和大家分享一下。支持三種數(shù)據(jù)庫(kù)連接:MSSQL2000,MSSQL2005,ACCESS
三種方法:
select_table(sql)
表查詢,返回TRUE或FALSE
當(dāng)SQL語(yǔ)句出錯(cuò),或空記錄時(shí)返回FALSE,否則TRUE
update_table(SQL)
表更新,包括update,delete
成功執(zhí)行返回TRUE,否則返回FALSE,updated為執(zhí)行后影響記錄行數(shù)。
insert_table(sql,table,id_column)
table為表名,id_column為表中自動(dòng)編號(hào),自增字段。
當(dāng)成功執(zhí)行返回TRUE,否則返回FALSE,指定TABLE,ID_column后,將返回最后添加記錄所產(chǎn)生的自增ID。
select_table()相關(guān)方法Select_page(page,psize)
分頁(yè)處理,page為當(dāng)前頁(yè),psize為每頁(yè)記錄行數(shù)。
所有操作時(shí),自動(dòng)檢測(cè)數(shù)據(jù)庫(kù)鏈接和RS是否打開(kāi),執(zhí)行后將自動(dòng)關(guān)閉數(shù)據(jù)庫(kù)鏈接。
示例:
set db = new adodb_class
if db.select_table("select * from news order by id desc") then
page = request("page")
Select_page(page,20)'每頁(yè)20條
for i=1 to 20
response.write db.rs("title")'類內(nèi)置rs,不可變
db.rs.movenext
if db.rs.eof then exit for
next
end if
db.rsPage = 總頁(yè)數(shù),db.nowPage= 經(jīng)過(guò)處理后當(dāng)前頁(yè),db.rsCounts數(shù)總記錄數(shù)量。
if db.update_table("delete from news where ispass=1") then'update同樣
response.write "共刪除"&db.updated&"行"
end if
call db.insert_table("insert into news (title,content) values ('"&title&"','"&content&"')","news","id")
response.write "最后添加ID為"&db.Insertd
在頁(yè)面最尾可輸出db.readCounts 為查詢數(shù)據(jù)庫(kù)次數(shù)。
--------------------------------------------
本類好處就是你不必?fù)?dān)心忘記關(guān)閉數(shù)據(jù)庫(kù)鏈接,不用頻繁set rs = server.recordset("adodb.recordset"),也不用set rs = nothing
缺點(diǎn)就是翻頁(yè)用的傳統(tǒng)方式。rs.absolutepage = rs.pagesize
----------------------------------------------------------
<%
'/******kshop******/
' adodb_class.asp 數(shù)據(jù)庫(kù)操作類
' Version 1.0
' Copyright [email]simple_1982@hotmail.com[/email]
' E-mail [email]xsg2005@163.com[/email]