国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

ASP 3.0高級編程(三十九)_ASP教程

2024-05-04 11:03:55
字體:
供稿:網(wǎng)友

推薦:ASP中實現(xiàn)從dbf數(shù)據(jù)庫導出數(shù)據(jù)到sql表
說明:dbf數(shù)據(jù)庫結(jié)構(gòu)要與sql表一致 以下為引用的內(nèi)容: <% Dim conndbf_dbf,Driver_dbf,SourceType_dbf,DBPath_dbf dim Conn_

8.4.3 創(chuàng)建記錄集
創(chuàng)建一個記錄集十分容易,通過調(diào)用Recordset對象的Open方法來實現(xiàn):
Recordset.Open [Source], [ActiveConnection], [CursorType], [LockType], [Options]
其參數(shù)及說明如表8-3所示:
表8-3 Open方法的參數(shù)及說明
參 數(shù)
說 明

Source
數(shù)據(jù)源??梢允菙?shù)據(jù)庫中的表名、存儲的查詢或過程、SQL字符串、Command對象或適用于提供者的其他命令對象

ActiveConnection
記錄集使用的連接??梢允且粋€連接字符串或者一個打開的Connection對象

CursorType
使用的光標類型。必須是定義的光標類型中的一種,缺省值為adForwardOnly

LockType
使用的鎖定類型。必須是定義的鎖定類型中的一種,缺省值為adLockReadOnly

Options
告訴提供者Source參數(shù)的內(nèi)容是什么,如表、文本字符串等等

例如,要打開數(shù)據(jù)庫pubs中authors表上的記錄集:
Dim rsAuthors

Set rsAuthors = Server.CreateObject("ADODB.Recordset")

rsAuthors.Open "authors", strConn

' Do something here

rsAuthors.Close
Set rsAuthors = Nothing
注意,有幾個參數(shù)沒有指定。實際上,所有的參數(shù)都是可選的,可以在打開記錄集之前為它們設置相應的屬性值:
Dim rsAuthors

Set rsAuthors = Server.CreateObject("ADODB.Recordset")

With rsAuthors
.Source = "authors"
.ActiveConnection = strConn
.CursorType = adOpenForwardOnly
.LockType = adLockReadOnly
.Open
End With

' Do something here

rsAuthors.Close
Set rsAuthors = Nothing
一旦打開記錄集,當前指針自動地位于第一條記錄上。如果在記錄集中沒有記錄,那么EOF和BOF屬性都是True:
rsAuthors.Open "authors", strConn

If rsAuthors.BOF and rsAuthors.EOF Then
' Recordset is empty
End If
1. Options參數(shù)
Open方法的Options參數(shù)允許指定命令文本內(nèi)容。它可以是以下CommandTypeEnum常數(shù)之一:
· adCmdText:文本命令,比如SQL字符串。
· adCmdTable:表名。
· adCmdStoredProc:存儲過程名。
· adCmdFile:保存的記錄集的文件名。
· adCmdTableDirect:表名。
· adCmdURLBind:URL地址。
adCmdTable與adCmdTableDirect的區(qū)別很小,如果想使用表中的全部列,使用adCmdTableDirect將由于ADO執(zhí)行了某些內(nèi)部優(yōu)化而使運行速度變得稍快一些。
如果沒有指定命令的類型,ADO必須推算出執(zhí)行的命令的類型,這將導致額外的開銷。
這里還有兩個選項:adCmdUnspecified表示沒有指定類型;adCmdUnknow表示命令的類型未知。一般地可能不會使用它們。
額外的選項
Options參數(shù)可以是以上常數(shù)中的任一個,但也可以加入下列ExecuteOptionEnum常數(shù):
· adAsyncExcute:異步地執(zhí)行命令。
· adAsyncFetch:取得初始的行集后,異步地獲取剩下的行。
· adAsyncFetchBlocking:除了獲取記錄不阻止命令運行以外,其他與adAsyncFetch相似。
· adExechteNoRecords:命令不返回任何記錄。
異步處理意味著在后臺執(zhí)行操作,可以運行命令,然后繼續(xù)其他工作,而不需要等待其執(zhí)行完畢(同步操作)。當創(chuàng)建用戶界面時,這顯得特別方便,因為可以從命令執(zhí)行中返回,向用戶顯示一些內(nèi)容,而同時數(shù)據(jù)的獲取仍然在后臺進行。當返回記錄集時,這對ASP程序員來說不是很有用,因為腳本語言不支持ADO事件,所以記錄集何時已完成填充移無法得知。當處理更新、刪除或插入數(shù)據(jù)命令以及不返回記錄集的時候,可以使用異步操作,即僅在不關(guān)心結(jié)果的情況下才能使用。
在另一方面,adExecuteNoRecords選項十分有用。它告訴ADO執(zhí)行的命令不返回任何數(shù)據(jù)。所以,就沒有必要創(chuàng)建記錄集(總之,可能為空)。這會加速正在運行的更新或添加數(shù)據(jù)的查詢操作。
為了加入這些選項之一,可以使用Or符號(等同于加號“ ”)
adCmdStoredProc Or adExecuteNoRecords

adCmdStoreProc adExecuteNoRecords
在下一章,將看到對相關(guān)內(nèi)容更詳細的介紹,因為這在處理命令(而不是記錄集)時會更有用。
2. 在記錄集中移動
一旦打開一個記錄集,經(jīng)常需要遍歷每一條記錄。這需要使用EOF屬性。當?shù)竭_記錄集的末尾時,EOF就變?yōu)門rue,因為可以這樣創(chuàng)建一個循環(huán):
rsAuthors.Open "authors", strConn

While Not rsAuthors.EOF
Response.Write rsAuthors("au_lname:) & ", " & _
rsAuthors("au_fname") & "<BR>"
rsAuthors.MoveNext
Wend
上面的例子一直循環(huán)到EOF屬性為True時才退出。MoveNext方法用于移到下一條記錄。
如果記錄集允許向后移動,則可以使用MovePrevious方法。在這種情況下,循環(huán)中需要檢測BOF屬性值。另外分別還有移動到第一條和最后一條記錄的MoveFirst和MoveLast方法:
rsAuthors.Open "authors", strConn, adOpenDynamic
' Now on first record

rsAuthors.MoveLast
' Now on last record
rsAuthors.MovePrevious
rsAuthors.MovePrevious
' Now three rows from the end of the recordset

rsAuthors.MoveFirst
' Back at the beginning again
3. 使用Fields集合
Fields集合包含記錄集中每一字段(列)的Fields對象。Fields集合是記錄集的缺省集合,因此在訪問字段時可以省略,就如同上面的While...Wend例子中的情況。因此,有多種訪問字段的方法:
rsAuthors.Fields("au_lname").Value
rsAuthors("au_lname).Value
rsAuthors(1).Value
rsAuthors.Fields(1).Value
可以使用字段名,或使用它在集合中的位

分享:ASP實現(xiàn)在提交表單到數(shù)據(jù)庫的同時發(fā)郵件通知
以下為引用的內(nèi)容:<% dim objCDOMail Set objCDOMail = Server.CreateObject("CDONTS.NewMail") objCDOMail.From ="xxx@h

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 东辽县| 兴安盟| 台湾省| 屏边| 辛集市| 乌兰浩特市| 修武县| 资阳市| 吴堡县| 昆山市| 句容市| 进贤县| 五台县| 志丹县| 邢台县| 中超| 开封县| 长宁县| 马龙县| 台山市| 当雄县| 福州市| 伊金霍洛旗| 中牟县| 临西县| 谷城县| 徐水县| 灵台县| 垦利县| 巴马| 潮州市| 黔江区| 和平县| 武威市| 甘德县| 武夷山市| 海伦市| 滦平县| 安徽省| 崇州市| 富宁县|