Asp 與access數(shù)據(jù)庫連接及基本操作
Posted by: rian at: 2006-06-17asp與ACCESS數(shù)據(jù)庫的連接及基本操作 (轉(zhuǎn)自)
①數(shù)據(jù)庫連接的建立: Ⅰ、沒有密碼的數(shù)據(jù) < % set cn=server.createobject("adodb.connection") *建立connecton對象,定義了一個adodb數(shù)據(jù)庫連接組件 cn.open"provider=microsoft.jet.oledb.4.0;data source="&server.mappath("test.mdb") *打開數(shù)據(jù)庫 % > Ⅱ、設(shè)有密碼的數(shù)據(jù) < % set cn=server.createobject("adodb.connection") *建立connecton對象,定義了一個adodb數(shù)據(jù)庫連接組件 cn.open"provider=microsoft.jet.oledb.4.0;data source="&server.mappath("test.mdb")&";jet oledb:database password="&pwd *打開數(shù)據(jù)庫 % > ②讀取記錄: < % set cn=server.createobject("adodb.connection") cn.open"provider=microsoft.jet.oledb.4.0;data source="&server.mappath("test.mdb") set rs=server.createobject("adodb.recordset") *建立connecton對象 sql="select * from table" *SQL語句 rs.open sql,cn,1,1 *執(zhí)行上面的SQL語句,其中參數(shù)1,1代表讀取;參數(shù)1,3代表修改記錄 if not rs.eof then *如果沒有到庫底 response.write"< tr >" for i=0 to rs.fields.count-1 *循環(huán)讀取字段 resposne.write"< td >"&rs(i).name&"< /td >" next rs.movefirst *指針置于首記錄 while not rs.eof response.write"< tr >" for i=0 to rs.fields.count-1 *循環(huán)讀取記錄 resposne.write"< td >"&rs(i)&"< /td >" next rs.movenext *指針下移一個記錄 wend end if rs.close *關(guān)閉rs對像 set rs=nothing *釋放rs對像 cn.close *…… set cn=nothing *…… % > ③寫入記錄: < % set cn=server.createobject("adodb.connection") cn.open"provider=microsoft.jet.oledb.4.0;data source="&server.mappath("test.mdb") cn.execute"insert into table(fields1,fields2,fields3,…)values(*"&變量1&"*,*"&變量2&"*,*"&變量3&"*,…)" cn.close *關(guān)閉cn對像 set cn=nothing *釋放cn對像 % > ④查詢記錄: < % set cn=server.createobject("adodb.connection") cn.open"provider=microsoft.jet.oledb.4.0;data source="&server.mappath("test.mdb") set rs=server.createobject("adodb.recordset") sql="select * from table where fields1=*"&變量1&"* and fields2=*"&變量2&"*" rs.open sql,cn,1,1 : *關(guān)閉對象 : % > ⑤刪除記錄: < % set cn=server.createobject("adodb.connection") cn.open"provider=microsoft.jet.oledb.4.0;data source="&server.mappath("test.mdb") cn.execute"delect * from tablename where 條件" % > ⑥更新記錄: < % set cn=server.createobject("adodb.connection") cn.open"provider=microsoft.jet.oledb.4.0;data source="&server.mappath("test.mdb") Ⅰ、 set rs=server.createobject("adodb.recordset") sql="update tablename set fields1=數(shù)值1 and fields2=數(shù)值2" rs.open sql,cn,1,3 Ⅱ、 cn.execute"update tablename set fields1=數(shù)值1,fields2=數(shù)值2 where fields=條件" Ⅲ、 set rs=server.createobject("adodb.recordset") sql="select * from tablename where fields=數(shù)值2" rs.open sql,cn,1,3 rs("fields1")=新數(shù)值1 rs("fields2")=新數(shù)值2 rs.update % > 以下是數(shù)據(jù)庫的常用技巧: 1、設(shè)置最多返回條數(shù): 有時候符合查詢的記錄可能有很多條,但我們并不需要查看全部記錄,只是想看前幾條記錄。 如:看前6條件記錄 select top 6 * from tablename order by id desc *desc為遞減,asc為遞增 另一種可以用百分比返回記錄數(shù): select top 20 percent * from tablename order by id desc 意思是返回全部記錄的百分之二十的記錄。 2、數(shù)據(jù)庫中的指針操作指令: rs.movenext 將記錄指針從當(dāng)前的位置向下移一行 rs.moveprevious 將記錄指針從當(dāng)前的位置向上移一行 rs.movefirst 將記錄指針移到數(shù)據(jù)表第一行 rs.movelast 將記錄指針移到數(shù)據(jù)表最后一行 rs.recordcount 返回記錄總數(shù) ,但必須rs.open sql,cn,3,3時才有效 |
|