1. ASP與Access數(shù)據(jù)庫(kù)連接: <%@ language=VBscript%> <% dim conn,mdbfile mdbfile=server.mappath("數(shù)據(jù)庫(kù)名稱.mdb") set conn=server.createobject("adodb.connection") conn.open "driver={microsoft access driver (*.mdb)};uid=admin;pwd=數(shù)據(jù)庫(kù)密碼;dbq="&mdbfile %> 2. ASP與SQL數(shù)據(jù)庫(kù)連接: <%@ language=VBscript%> <% dim conn set conn=server.createobject("ADODB.connection") con.open "PROVIDER=SQLOLEDB;DATA SOURCE=SQL服務(wù)器名稱或IP地址;UID=sa;PWD=數(shù)據(jù)庫(kù)密碼;DATABASE=數(shù)據(jù)庫(kù)名稱 %>
建立記錄集對(duì)象:
set rs=server.createobject("adodb.recordset") rs.open SQL語(yǔ)句,conn,3,2
3. 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 條件表達(dá)式" sql="update 數(shù)據(jù)表 set 字段1=值1,字段2=值2 …… 字段n=值n where 條件表達(dá)式"
(3) 刪除數(shù)據(jù)記錄: sql="delete from 數(shù)據(jù)表 where 條件表達(dá)式" sql="delete from 數(shù)據(jù)表" (將數(shù)據(jù)表所有記錄刪除)
(4) 添加數(shù)據(jù)記錄: sql="insert into 數(shù)據(jù)表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)" sql="insert into 目標(biāo)數(shù)據(jù)表 select * from 源數(shù)據(jù)表" (把源數(shù)據(jù)表的記錄添加到目標(biāo)數(shù)據(jù)表)
(5) 數(shù)據(jù)記錄統(tǒng)計(jì)函數(shù): AVG(字段名) 得出一個(gè)表格欄平均值 COUNT(*¦字段名) 對(duì)數(shù)據(jù)行數(shù)的統(tǒng)計(jì)或?qū)δ骋粰谟兄档臄?shù)據(jù)行數(shù)統(tǒng)計(jì) MAX(字段名) 取得一個(gè)表格欄最大的值 MIN(字段名) 取得一個(gè)表格欄最小的值 SUM(字段名) 把數(shù)據(jù)欄的值相加 引用以上函數(shù)的方法: sql="select sum(字段名) as 別名 from 數(shù)據(jù)表 where 條件表達(dá)式" set rs=conn.excute(sql) 用 rs("別名") 獲取統(tǒng)的計(jì)值,其它函數(shù)運(yùn)用同上。
(5) 數(shù)據(jù)表的建立和刪除: CREATE TABLE 數(shù)據(jù)表名稱(字段1 類型1(長(zhǎng)度),字段2 類型2(長(zhǎng)度) …… ) 例:CREATE TABLE tab01(name varchar(50),datetime default now())
DROP TABLE 數(shù)據(jù)表名稱 (永久性刪除一個(gè)數(shù)據(jù)表) 4. 記錄集對(duì)象的方法: rs.movenext 將記錄指針從當(dāng)前的位置向下移一行 rs.moveprevious 將記錄指針從當(dāng)前的位置向上移一行 rs.movefirst 將記錄指針移到數(shù)據(jù)表第一行 rs.movelast 將記錄指針移到數(shù)據(jù)表最后一行 rs.absoluteposition=N 將記錄指針移到數(shù)據(jù)表第N行 rs.absolutepage=N 將記錄指針移到第N頁(yè)的第一行 rs.pagesize=N 設(shè)置每頁(yè)為N條記錄 rs.pagecount 根據(jù) pagesize 的設(shè)置返回總頁(yè)數(shù) rs.recordcount 返回記錄總數(shù) rs.bof 返回記錄指針是否超出數(shù)據(jù)表首端,true表示是,false為否 rs.eof 返回記錄指針是否超出數(shù)據(jù)表末端,true表示是,false為否 rs.delete 刪除當(dāng)前記錄,但記錄指針不會(huì)向下移動(dòng) rs.addnew 添加記錄到數(shù)據(jù)表末端 rs.update 更新數(shù)據(jù)表記錄 -------------------------------------------------------------- Recordset對(duì)象方法 Open方法 recordset.Open Source,ActiveConnection,CursorType,LockType,Options Source Recordset對(duì)象可以通過(guò)Source屬性來(lái)連接Command對(duì)象。Source參數(shù)可以是一個(gè)Command對(duì)象名稱、一段SQL命令、一個(gè)指定的數(shù)據(jù)表名稱或是一個(gè)Stored Procedure。假如省略這個(gè)參數(shù),系統(tǒng)則采用Recordset對(duì)象的Source屬性。
ActiveConnection Recordset對(duì)象可以通過(guò)ActiveConnection屬性來(lái)連接Connection對(duì)象。這里的ActiveConnection可以是一個(gè)Connection對(duì)象或是一串包含數(shù)據(jù)庫(kù)連接信息(ConnectionString)的字符串參數(shù)。
CursorType Recordset對(duì)象Open方法的CursorType參數(shù)表示將以什么樣的游標(biāo)類型啟動(dòng)數(shù)據(jù),包括adOpenForwardOnly、adOpenKeyset、adOpenDynamic及adOpenStatic,分述如下: -------------------------------------------------------------- 常數(shù) 常數(shù)值 說(shuō)明 -------------------------------------------------------------- adOpenForwardOnly 0 缺省值,啟動(dòng)一個(gè)只能向前移動(dòng)的游標(biāo)(Forward Only)。 adOpenKeyset 1 啟動(dòng)一個(gè)Keyset類型的游標(biāo)。 adOpenDynamic 2 啟動(dòng)一個(gè)Dynamic類型的游標(biāo)。 adOpenStatic 3 啟動(dòng)一個(gè)Static類型的游標(biāo)。 -------------------------------------------------------------- 以上幾個(gè)游標(biāo)類型將直接影響到Recordset對(duì)象所有的屬性和方法,以下列表說(shuō)明他們之間的區(qū)別。 -------------------------------------------------------------- Recordset屬性 adOpenForwardOnly adOpenKeyset adOpenDynamic adOpenStatic -------------------------------------------------------------- AbsolutePage 不支持 不支持 可讀寫 可讀寫 AbsolutePosition 不支持 不支持 可讀寫 可讀寫 ActiveConnection 可讀寫 可讀寫 可讀寫 可讀寫 BOF 只讀 只讀 只讀 只讀 Bookmark 不支持 不支持 可讀寫 可讀寫 CacheSize 可讀寫 可讀寫 可讀寫 可讀寫 CursorLocation 可讀寫 可讀寫 可讀寫 可讀寫 CursorType 可讀寫 可讀寫 可讀寫 可讀寫 EditMode 只讀 只讀 只讀 只讀 EOF 只讀 只讀 只讀 只讀 Filter 可讀寫 可讀寫 可讀寫 可讀寫 LockType 可讀寫 可讀寫 可讀寫 可讀寫 MarshalOptions 可讀寫 可讀寫 可讀寫 可讀寫 MaxRecords 可讀寫 可讀寫 可讀寫 可讀寫 PageCount 不支持 不支持 只讀 只讀 PageSize 可讀寫 可讀寫 可讀寫 可讀寫 RecordCount 不支持 不支持 只讀 只讀 Source 可讀寫 可讀寫 可讀寫 可讀寫 State 只讀 只讀 只讀 只讀 Status 只讀 只讀 只讀 只讀 AddNew 支持 支持 支持 支持 CancelBatch 支持 支持 支持 支持 CancelUpdate 支持 支持 支持 支持 Clone 不支持 不支持 Close 支持 支持 支持 支持 Delete 支持 支持 支持 支持 GetRows 支持 支持 支持 支持 Move 不支持 支持 支持 支持 MoveFirst 支持 支持 支持 支持 MoveLast 不支持 支持 支持 支持 MoveNext 支持 支持 支持 支持 MovePrevious 不支持 支持 支持 支持 NextRecordset 支持 支持 支持 支持 Open 支持 支持 支持 支持 Requery 支持 支持 支持 支持 Resync 不支持 不支持 支持 支持 Supports 支持 支持 支持 支持 Update 支持 支持 支持 支持 UpdateBatch 支持 支持 支持 支持 -------------------------------------------------------------- 其中NextRecordset方法并不適用于Microsoft Access數(shù)據(jù)庫(kù)。
LockType Recordset對(duì)象Open方法的LockType參數(shù)表示要采用的Lock類型,如果忽略這個(gè)參數(shù),那么系統(tǒng)會(huì)以Recordset對(duì)象的LockType屬性為預(yù)設(shè)值。LockType參數(shù)包含adLockReadOnly、adLockPrssimistic、adLockOptimistic及adLockBatchOptimistic等,分述如下: ------------------------------------------------------------- 常數(shù) 常數(shù)值 說(shuō)明 -------------------------------------------------------------- adLockReadOnly 1 缺省值,Recordset對(duì)象以只讀方式啟動(dòng),無(wú)法運(yùn)行AddNew、Update及Delete等方法 adLockPrssimistic 2 當(dāng)數(shù)據(jù)源正在更新時(shí),系統(tǒng)會(huì)暫時(shí)鎖住其他用戶的動(dòng)作,以保持?jǐn)?shù)據(jù)一致性。 adLockOptimistic 3 當(dāng)數(shù)據(jù)源正在更新時(shí),系統(tǒng)并不會(huì)鎖住其他用戶的動(dòng)作,其他用戶可以對(duì)數(shù)據(jù)進(jìn)行增、刪、改的操作。 adLockBatchOptimistic 4 當(dāng)數(shù)據(jù)源正在更新時(shí),其他用戶必須將CursorLocation屬性改為adUdeClientBatch才能對(duì)數(shù)據(jù)進(jìn)行增、 刪、改的操作。
出處:藍(lán)色理想
責(zé)任編輯:藍(lán)色
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|