程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP技巧 >> SQL語句及Recordset記錄集對象詳解

SQL語句及Recordset記錄集對象詳解

編輯:ASP技巧

1. ASP與Access數據庫連接:
<%@ language=VBscript%>
<%
dim conn,mdbfile
mdbfile=server.mappath("數據庫名稱.mdb")
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft Access driver 
(*.mdb)};uid=admin;pwd=數據庫密碼;dbq="&mdbfile
%>
2. ASP與SQL數據庫連接:
<%@ language=VBscript%>
<%
dim conn
set conn=server.createobject("ADODB.connection")
con.open "PROVIDER=SQLOLEDB;DATA 
SOURCE=SQL服務器名稱或IP地址;UID=sa;PWD=數據庫密碼;DATABASE=數據庫名稱
%>

建立記錄集對象:

set rs=server.createobject("adodb.recordset")
rs.open SQL語句,conn,3,2

3. SQL常用命令使用方法:
(1) 數據記錄篩選:
sql="select * from 數據表 where 字段名=字段值 order by 字段名 [desc]"
sql="select * from 數據表 where 字段名 like ’%字段值%’ order by 字段名 [desc]"
sql="select top 10 * from 數據表 where 字段名 order by 字段名 [desc]"
sql="select * from 數據表 where 字段名 in (’值1’,’值2’,’值3’)"
sql="select * from 數據表 where 字段名 between 值1 and 值2"

(2) 更新數據記錄:
sql="update 數據表 set 字段名=字段值 where 條件表達式"
sql="update 數據表 set 字段1=值1,字段2=值2 …… 字段n=值n where 條件表達式"

(3) 刪除數據記錄:
sql="delete from 數據表 where 條件表達式"
sql="delete from 數據表" (將數據表所有記錄刪除)

(4) 添加數據記錄:
sql="insert into 數據表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)"
sql="insert into 目標數據表 select * from 源數據表" (把源數據表的記錄添加到目標數據表)

(5) 數據記錄統計函數:
AVG(字段名) 得出一個表格欄平均值
COUNT(*¦字段名) 對數據行數的統計或對某一欄有值的數據行數統計
MAX(字段名) 取得一個表格欄最大的值
MIN(字段名) 取得一個表格欄最小的值
SUM(字段名) 把數據欄的值相加
引用以上函數的方法:
sql="select sum(字段名) as 別名 from 數據表 where 條件表達式"
set rs=conn.excute(sql)
用 rs("別名") 獲取統的計值,其它函數運用同上。

(5) 數據表的建立和刪除:
Create TABLE 數據表名稱(字段1 類型1(長度),字段2 類型2(長度) …… )
例:Create TABLE tab01(name varchar(50),datetime default now())

Drop TABLE 數據表名稱 (永久性刪除一個數據表)
4. 記錄集對象的方法:
rs.movenext 將記錄指針從當前的位置向下移一行
rs.moveprevious 將記錄指針從當前的位置向上移一行
rs.movefirst 將記錄指針移到數據表第一行
rs.movelast 將記錄指針移到數據表最後一行
rs.absoluteposition=N 將記錄指針移到數據表第N行
rs.absolutepage=N 將記錄指針移到第N頁的第一行
rs.pagesize=N 設置每頁為N條記錄
rs.pagecount 根據 pagesize 的設置返回總頁數
rs.recordcount 返回記錄總數
rs.bof 返回記錄指針是否超出數據表首端,true表示是,false為否
rs.eof 返回記錄指針是否超出數據表末端,true表示是,false為否
rs.delete 刪除當前記錄,但記錄指針不會向下移動
rs.addnew 添加記錄到數據表末端
rs.update 更新數據表記錄
--------------------------------------------------------------
Recordset對象方法
Open方法
recordset.Open Source,ActiveConnection,CursorType,LockType,Options
Source
Recordset對象可以通過Source屬性來連接Command對象。Source參數可以是一個Command對象名稱、一段SQL命令、一個指定的數據表名稱或是一個Stored 
Procedure。假如省略這個參數,系統則采用Recordset對象的Source屬性。

ActiveConnection
Recordset對象可以通過ActiveConnection屬性來連接Connection對象。這裡的ActiveConnection可以是一個Connection對象或是一串包含數據庫連接信息(ConnectionString)的字符串參數。

CursorType
Recordset對象Open方法的CursorType參數表示將以什麼樣的游標類型啟動數據,包括adOpenForwardOnly、adOpenKeyset、adOpenDynamic及adOpenStatic,分述如下:
--------------------------------------------------------------
常數 常數值 說明
--------------------------------------------------------------
adOpenForwardOnly 0 缺省值,啟動一個只能向前移動的游標(Forward Only)。
adOpenKeyset 1 啟動一個Keyset類型的游標。
adOpenDynamic 2 啟動一個Dynamic類型的游標。
adOpenStatic 3 啟動一個Static類型的游標。
--------------------------------------------------------------
以上幾個游標類型將直接影響到Recordset對象所有的屬性和方法,以下列表說明他們之間的區別。
--------------------------------------------------------------
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數據庫。

LockType
Recordset對象Open方法的LockType參數表示要采用的Lock類型,如果忽略這個參數,那麼系統會以Recordset對象的LockType屬性為預設值。LockType參數包含adLockReadOnly、adLockPrssimistic、adLockOptimistic及adLockBatchOptimistic等,分述如下:
-------------------------------------------------------------
常數 常數值 說明
--------------------------------------------------------------
adLockReadOnly 1 缺省值,Recordset對象以只讀方式啟動,無法運行AddNew、Update及Delete等方法
adLockPrssimistic 2 當數據源正在更新時,系統會暫時鎖住其他用戶的動作,以保持數據一致性。
adLockOptimistic 3 當數據源正在更新時,系統並不會鎖住其他用戶的動作,其他用戶可以對數據進行增、刪、改的操作。
adLockBatchOptimistic 4 當數據源正在更新時,其他用戶必須將CursorLocation屬性改為adUdeClIEntBatch才能對數據進行增、刪、改的操作。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved