ASP

asp个人整理

1.函數array()
功能:創建一個數組變量
格式:array(list)
參數:list 為數組變量中的每個數值列,中間用逗號間隔
例子:
<% i = array (“1″,”2”,3) %>
結果: i 被賦予為數組
2.函數Cint()
功能:將一表達式/其它類型的變量轉換成整數類型(int)
格式:Cint(expression)
參數:expression 是任何有效的表達式/其它類型的變量
例子:
<%
f = “234”
response.write cINT(f) + 2
%>
結果: 236
函數Cint()將字符”234″轉換 成整數234.如果表達式為空, 或者無效時,返回值為0;
3.函數:Creatobject()
功能:創建及返回一個ActiveX對象.
格式:Creatobject(obname)
參數:obname 是對象的名稱
例子:
<%
Set con = Server.CreateObject(“ADODB.Connection”)
%>
結果:
4.函數Cstr()
功能:將一表達式/其它類型的變量轉換成字符類型(string)
格式:Cstr(expression)
參數:expression是任何有效的表達式/其它類型的變量
例子:
<%
s = 3 + 2
response.write “The result is: ” & cStr(s)
%>
結果:函數Cstr()將整數 5 轉換 成字符”5″.
5.函數Date()
功能:返回當前系統(server端)的日期
格式:Date()
參數:無
例子<% date () %>
結果:05/10/00
6.函數Dateadd()
功能:計算某個指定的時間和
格式:dateadd(timeinterval,number,date)
參數:timeinterval是時間單位(月,日..); number是時間間隔值,date是時間始點.
例子:
<%
currentDate = #8/4/99#
newDate = DateAdd(“m”,3,currentDate)
response.write newDate
%> <%
currentDate = #12:34:45 PM#
newDate = DateAdd(“h”,3,currentDate)
response.write newDate
%>
結果:
11/4/99
3:34:45 PM
其中
“m” = “month”;
“d” = “day”;
如果是currentDate 格式,則,
“h” = “hour”;
“s” = “second”;
7.函數Datediff()
功能:計算某量個指定的時間差
格式:datediff(timeinterval,date1,date2[,firstdayofweek[,firstdayofyear]])
參數:timeinterval 是時間單位; date1,date2是有效的日期表達式,firstdayofweek,firstdayofyear 是任意選項.
例子:
<%
fromDate = #8/4/99#
toDate = #1/1/2000#
response.write “There are ” & _
DateDiff(“d”,fromDate,toDate) & _
” days to millenium from 8/4/99.”
%>
結果:There are 150 days to millenium from 8/4/99.
8.函數day()
功能:返回一個整數值,對應于某月的某日
格式:day(date)
參數:date是一個有效的日期表達式;
例子lt;% =date(#8/4/99#) %>
結果:4
9.函數formatcurrency()
功能:轉換成貨幣格式
格式:formatcurrency(expression [,digit[,leadingdigit[,paren[,groupdigit]]]])
參數:expression 是有效的數字表達式;digit表示小數點后的位數;leadingdigit,paren,groupdigit是任意選項.
例子<%=FormatCurrency(34.3456)%>
結果34.35
10.函數Formatdatetime()
功能:格式化日期表達式/變量
格式:formatdatetime(date[,nameformat])
參數:date為有效的日期表達式/變量;nameformat是指定的日期格式常量名稱.
例子<% =formatdatetime(“08/04/99″,vblongdate) %>
結果:Wednesday,August 04,1999
21.函數Isnumeric()
功能:返回一個布爾值,判斷變量是否為數字變量,或者是可以轉換成數字的其它變量.
格式:isnumeric(expression)
參數:expression 是任意的變量.
例子:
<%
i=”234”
response.write isnumeric(i)
%>
結果: true.
22.函數Isobject()
功能:返回一個布爾值,判斷變量是否為對象的變量,
格式:isobject(expression)
參數:expression 是任意的變量.
例子:
<%
set con =server.creatobject(“adodb.connection”)
response.write isobject(con)
%>
結果: true
23.函數:Lbound()
功能:返回一個數組的下界.
格式:Lbound(arrayname[,dimension])
參數:arrayname 是數組變量,dimension 是任意項
例子:
<%
i = array(“1″,”2″,”3″)
response.write lbound(i)
%>
結果:0
24.函數Lcase()
功能:將一字符類型變量的字符全部變換小寫字符.
格式:Lcase(string)
參數:string是字串變量
例子:
<%
str=”THIS is Lcase!”
response.write Lcase(str)
%>
結果:this is lcase!
25.函數left()
功能:截取一個字符串的前部分;
格式:left(string,length)
參數:string字符串,length截取的長度.
例子: <% =left(“this is a test!”,6) %>
結果:this i
26.函數len()
功能:返回字符串長度或者變量的字節長度
格式:len(string |varname)
參數:string字符串;varname任意的變量名稱
例子:
<%
strtest=”this is a test!”
response.write left(strtest)
%>
結果:15
27.函數ltrim()
功能:去掉字符串前的空格.
格式:ltrim(string)
參數:string 字串.
例子: <% =ltrim (” this is a test!”)
結果:this is a test!
28.函數Mid()
功能:從字串中截取字串.
格式:mid(string,start [,length])
參數:string字串,start截取的起點,length要截取的長度.
例子:
<%
strtest=”this is a test, Today is Monday!”
response.write mid(strtest,17,5)
%>
結果:Today
29.函數minute()
功能:返回一數值, 表示分鐘
格式:minute(time)
參數: time是時間變量
例子lt;% =minute(#12:23:34#) %>
結果:23
30.函數month()
功能:返回一數值, 表示月份
格式:month(time)
參數:time是日期變量
例子<% =month(#08/09/99) %>
結果:9
31.函數monthname()
功能:返回月份的字符串(名稱).
格式:Monthname(date [,abb])
參數:date是日期變量,abb=true時 則月份的縮寫,
例子:
<% =monthname(#4/5/99#) %>
結果:April
32.函數Now()
功能:返回系統的當前時間和日期.
格式:now()
參數:無
例子:
<% =now() %>
結果: 05/10/00 8:45:32 pm
33.函數:replace()
功能:在字串中查找,替代指定的字串.
格式:replace(strtobesearched,strsearchfor,strreplacewith [,start[,count[,compare]]])
參數:strtobesearched是字串; strsearchfor是被查找的子字串;strreplacewith 是用來替代的子字串.start,count,compare 是任意選項.
例子:
<%
strtest=”this is an apple.”
response.write replace(strtest,”apple”,”orange”)
%>
結果:this is an orange.
34.函數right()
功能:截取一個字符串的后部分
格式:right(string,length)
參數:string字符串,length截取的長度.
例子:
<%
strtest=”this is a test!”
response.write right(strtest,3)
%>
結果:st!
35.函數rnd()
功能:返回一個隨机數值
格式:rnd[(number)]
參數:number是任意數值.
例子:
<%
randomize()
response.write rnd()
%>
結果:0/1數值之一,無randomize(), 則不能產生隨机數.
36.函數round()
功能:完整數值
格式:round(expression[,numright])
參數:expression數字表達式;numright任意選項.
例子:
<%
i=12.33654
response.write round(i)
%>
結果: 12
37.函數rtrim()
功能:去掉字符串后的空格.
格式:rtrim(string)
參數:string 是字串
例子:
<%
response.write rtrim(“this is a test! “)
%>
結果:this is a test!
38.函數second()
功能:返回一個整數值.
格式:second(time)
參數:time是一個有效的時間表達式;
例子lt;% =second(# 12:28:30#) %>
結果:30
39.函數strReverse()
功能:返回与原字串排列逆向的字串.
格式:strreverse(string)
參數:string是字串
例子<% =strreverse(“this is a test!”)
結果:!tset a si siht
40.函數time()
功能:返回當前系統的時間值.
格式:time()
參數:無
結果:9:58:28 Am
41.函數trim()
功能:刪去字符串前,后的空格.
格式:trim(string)
參數:string 字串.
例子:
<%
strtest=” this is a test! ”
response.write trim(strtest)
%>
結果:this is a test!
42.函數UBound()
功能:返回一個數組的上界.
格式:Ubound(expression [,dimension])
參數:expression 是數組表達式/數組變量,dimension 是任意項
例子:
<%
i = array(“1″,”2″,”3″)
response.write ubound(i)
%>
結果: 2
43.函數:UCase()
功能:將一字符類型變量的字符全部變換成大寫字符.
格式:Ucase(string)
參數:string是字串變量
例子:
<%
str=”THIS is Lcase!”
response.write Lcase(str)
%>
結果:THIS IS LCASE!
44.函數Vartype()
功能:返回變量的常量代碼(整數)
格式:Vartype(varname)
參數:varname是任何類型的變量名稱.
例子:
<%
i=5
response.write vartype(i)
%>
結果:2 (2表示整數,須要參考ASP常量代碼.)
45.函數Weekday()
功能:返回一個整數,對應一周中的第几天.
格式:Weekday(date [,firstofweek])
參數:date為日期變量,firstofweek為任選項.
例子:
<%
d= # 5/9/00 #
response.write weekday(d) %>
結果:3(3 表示是星期二)
46.函數weekdayname()
功能:返回字串,對應星期几.
格式:weekdayname(weekday[,abb[,firstdayofweek]])
參數:weekday為日期變量,abb,firstdayofweek為任選項.
例子:
<%
d = #8/4/99#
response.write weekdayname(d)
%>
結果: Wednesday
47.函數year()
功能:返回日期表達式所在的年份.
格式:year(date)
參數:date是有效的日期表達式
例子:
<% =year(#8/9/99#) %>
結果:1999
Connection对象
属性
属性名称 数据类型和用途
Attributes 可读写Long类型,通过两个常数之和指定是否使用保留事务(retainning transactions)。常数adXactCommitRetaining表示调用CommitTrans方法时启动一个新事务;常数adXactAbortRetaning表示调用RollbackTrans方法时启动一个新事务。默认值为0,表示不使用保留事务。
CommandTimeout可读写Long类型,指定中止某个相关Command对象的Execute调用之前必须等待的时间。默认值为30秒。
ConnectionString 可读写String类型,提供数据提供者或服务提供者打开到数据源的连接所需要的特定信息
ConnectionTimeout 可读写Long类型,指定中止一个失败的Connection.Open方法调用之前必须等待的时间,默认值为15秒。
CursorLocation 可读写Long类型,确定是使用客户端(adUseClient)游标引擎,还是使用服务器端(adUseServer)游标引擎。默认值是adUseServer。
DefaultDatabase 可读写String类型,如果ConnectString中未指定数据库名称,就使用这里所指定的名称,对SQL Server而言,其值通常是pubs
IsolationLevel 可读写Long类型,指定和其他并发事务交互时的行为或事务。见IsolationLevel常数
Mode Long类型,指定对Connection的读写权限。见Mode常数
Provider 可读写String类型,如果ConnectionString中未指定OLE DB数据或服务提供者的名称,就使用这时指定的名称。默认值是MSDASQL(Microsoft OLE DB Provider for ODBC)。
State 可读写Long类型,指定连接是处于打开状态,还是处于关闭状态或中间状态。见State常数
Version 只读String类型,返回ADO版本号。
注意:上面所列出的大多数可读写的属性,只有当连接处于关闭状态时才是可写的。
只有当用户为Connection对象用BeginTrans…CommitTrans…RollbackTrans方法定义了不遗余力,事务隔离程度的指定才真正有效。如果有多个数据库用户同时执行事务,那么应用程序中必须指定如何响应运行中的其他事务。
方法

方法 用途
BeginTrans 初始化一个事务;其后必须有CommitTrans和/或RollbackTrans相呼应
Close 关闭连接
CommitTrans提交一个事务,以完成对数据源的永久改变(要求使用之前必须调用了BeginTrans方法)
Execute 从SELECT SQL语句返回一个forward-only Recordset对象,也用来执行那些不返回Recordset语句,如INSERT、UPDATE、DELETE查询或DDL语句
Open用连接字符串来打开一个连接
OpenSchema 返回一个Recordset对象以提供数据源的结构信息(metadata)
RollbackTrans 取消一个事务,恢复对数据源做的临时性改变(要求使用之前必须调用了BeginTrans方法)

注:只有Execute、Open和OpenSchema三个方法才能接受变元参数。Execute的语法为:
cnnName.Execute strCommand,[lngRowsAffected[,lngOptions]]
strCommand的值可以是SQL语句、表名、存储过程名,也可以是数据提供者所能接受的任意字符串。为了提高性能,最好为lngOptions参数指定合适的值(详见lngOptions参数用到的常数),以使提供者解释语句时不用再去判定其类型。可选参数lngRowsAffected将返回INSERT、UPDATE或DELETE查询执行以后所影响的数目。这些查询会返回一个关闭的Recordset对象。一个SELECT查询将返回lngRowsAffected值为0并且返回带有一行或多行内容的打开的forward-only Recordset。

事件
事件名称 触发时机
BeginTransComplete BeginTrans方法执行以后。
程序代码:
Private Sub cnnName_BeginTransComplet(ByVal TransactionLevel As Long,ByVal pError As ADODB.Error,adStatus As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
CommitTransComplete CommitTrans方法执行以后
程序代码:
Private Sub Connection1_CommitTransComplete(ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
ConnectComplete 成功建立到数据源的Connection之后
程序代码:
Private Sub Connection1_ConnectComplete(ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
Disconnect Connection关闭之后
程序代码:
Private Sub Connection1_Disconnect(adStatus As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
ExecuteComplete 完成Connection.Execute或Command.Execute之时
程序代码:
Private Sub Connection1_ExecuteComplete(ByVal RecordsAffected As Long, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pCommand As ADODB.Command, ByVal pRecordset As ADODB.Recordset, ByVal pConnection As ADODB.Connection)
InfoMessage 一个Error对象被添加到ADODB.Connectio.Error集合之时
程序代码:
Private Sub Connection1_InfoMessage(ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
RollbackTransComplete RollbackTrans方法执行之后
程序代码:
Private Sub Connection1_RollbackTransComplete(ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
WillConnect 即将调用Connection.Open方法之时
程序代码:
Private Sub Connection1_WillConnect(ConnectionString As String, UserID As String, Password As String, Options As Long, adStatus As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
WillExecute 即将调用Connection.Execute或Command.Execute方法之时
程序代码:
Private Sub Connection1_WillExecute(Source As String, CursorType As ADODB.CursorTypeEnum, LockType As ADODB.LockTypeEnum, Options As Long, adStatus As ADODB.EventStatusEnum, ByVal pCommand As ADODB.Command, ByVal pRecordset As ADODB.Recordset, ByVal pConnection As ADODB.Connection)
注:其中的adStatus参数所用到的常数的名称和含义详见adStatus所用的常数

常数
IsolationLevel 常数
常数 含义
adXactCursorStability 只允许读其他事务已提交的改变(默认值)
adXactBrowse 允许读其他事务未提交的改变
adXactChaos 本事务不会覆盖其他位于更高隔离程度的事务所做的改变
adXactIsolated 所有事务相互独立
adXactReadCommitted等同于adXactCursorStability
adXactReadUncommitted 等同于adXactBrowse
adXactRepeatableRead禁止读其他事务的改变
adXactSerializable 等同于adXactIsolated
adXactUnspecified 不能确定提供者的事务隔离程度

Mode常数
常数 含义
adModeUnknown 未指定数据源的连接许可权(默认值)
adModeRead 连接是只读的
adModeReadWrite 连接是可读写的
adModeShareDenyNone 不拒绝其他用户的读写访问(Jet OLE DB Provider的默认值)
adModeShareDenyRead 拒绝其他用户打开到数据源的读连接
adModeShareDenyWrite 拒绝其他用户打开到数据源的写连接
adModeShareExclusive 以独占方式打开数据源
adModeWrite 连接是只写的

State常数
常数 含义
adStateClosed Connection(或其他对象)是关闭的(默认值)
adStateConnecting 正在连接数据源的状态
adStateExecuting Connection或Command对象的Execute方法已被调用
adStateFetching 返回行(row)到Recordset对象
adStateOpen Connection(或其他对象)是打开的(活动的)

Execute方法中lngOption参数用到的常数
Command类型常数 含义
adCmdUnknown Command类型未定(默认值),由数据提供者去判别Command语法
adCmdFile Command是和对象类型相应的文件名称
adCmdStoredProc Command是存储过程名称
adCmdTable Command是能产生内部SELECT * FROM TableName查询的表名称
adCmdTableDirect Command是能直接从表中获取行内容的表名称
adCmdText Command是一条SQL语句

ADODB事件处理子过程参数adStatus所用的常数
常数 含义
adStatusCancel 操作被用户取消
adStatusCnatDeny 操作不能拒绝其他用户对数据源的访问
adStatusErrorsOccurred 操作导致错误并已送到Errors集合中
adStatusOK 操作成功
adStatusUnWantedEvent 操作过程中一个未预料到的事件被激活

Command对象

Command对象的主要目的是执行参数化的存储过程。其形式要么是临时准备(prepared),要么是持久的预编译(precompiled)过的SQL语句。如果想(存储)一个或多个查询以供在同一Connection上多次执行,Command对象也是很有用的。当想创建Recordset时,一种高效的方法是绕过Command对象而采用Recordset.Open方法。
属性

属性名称 数据类型和用途
ActiveConnection 指针类型,指向Command所关联的Connection对象。对于现存的已打开连接,可使用Set cmmName.ActiveConnection=cnnName。另外,也可以不用相关Connection对象名称而使用有效的连接字符串去创建一个新的连接。默认值为Null。
CommandText 可读写String类型。为ActiveConnection指定一条SQL语句、表名、存储过程名或提供者能接受的任意字符串。CommandType属性的值决定了CommandText属性值的格式。默认值为空字符串:””
CommandTimeout可读写Long类型,指定中止一个Command.Execute调用之前必须等待的时间。这时的值优先于Connection.ComandTimeout中的设定值。默认值为30秒。
CommandType 可读写Long类型,指定数据提供者该如何解释CommandText属性值。CommandType等效于Connection.Execute方法中的可选参数lngOption。详见CommandType所用到的常数。默认值为adCmdUnkown.
Name 可读写String类型,指定Command的名称。
Prepared 可读写Boolean类型,判断数据源是否把CommandText中的SQL语句编译为prepared statement(一种临时性存储过程)。prepared statement仅存活于Command的ActiveConnection生命周期中。许多客户/服务器RDBMS,包括SQL SERVER,都支持prepared statement。如果数据源不支持prepared statement,则把该属性设为True,将导致一个自陷错误。
State 可读写Long类型,指定Commnad状态。见State常数。

注意:最好每次都为CommandType指定的一个合适的常数值,否则会降低系统运行的效率。

方法
方法 用途
Createparameter 在执行该方法之前,必须首先声明一个ADODB.Parameter对象。调用语法为:
程序代码:
cmmName.CreateParameter [strName[,lngType[,lngDirection[,lngSize[,varValue]]]]]
Execute 调用语法同Connection.Execute大致相同。
常数

State常数

常数 含义
adStateClosed Connection(或其他对象)是关闭的(默认值)
adStateConnecting 正在连接数据源的状态
adStateExecuting Connection或Command对象的Execute方法已被调用
adStateFetching返回行(row)到Recordset对象
adStateOpen Connection(或其他对象)是打开的(活动的)

CommandType所用到的常数

Command类型常数 含义
adCmdUnknown Command类型未定(默认值),由数据提供者去判别Command语法
adCmdFile Command是和对象类型相应的文件名称
adCmdStoredProc Command是存储过程名称
adCmdTable Command是能产生内部SELECT * FROM TableName查询的表名称
adCmdTableDirect Command是能直接从表中获取行内容的表名称
adCmdText Command是一条SQL语句

Recordset对象

属性

属性名称 数据类型和用途
AbsolutePage 可读写Long类型,要么是设置或返回当前记录所处的页面序号,要么是一个PositionEnum常数,见AbsolutePage用到的常数。在获取或设置AbsolutePage的值之前,必须先设定PageSize的值。AbsolutePage是从1开始计数的。如果当前记录位于第一页时,AbsolutePage的返回值为1,对AbsolutePage设置将使当前记录指针指向指定页的第一条记录。
AbsolutePosition* 可读写的Long类型(从1开始计数),设置或返回当前记录年处的位置。AbsolutePosition的最大取值是RecordCount属性的值。
ActiveCommand可读写的String类型,Recordset所关联的先前打开的Command对象名称
ActiveConnection 指针类型,指向Recordset所关联的先前打开的Connection对象,或指向一条完整有效的ConnectionString串值。
BOF* 只读Boolean类型,若为True,表明记录指针已位于Recordset第一条记录之前,并且没有了当前记录
Bookmark* 可读写variant类型,返回对特定记录的引用或使用一个Bookmark值使记录指针指向特定记录
CacheSize* 可读写Long类型,指定本地Cache中所存的记录条数,最小(默认值)为1。若增加了CacheSize的值,则在流动Recordset以获取更多记录时,能减少与服务器的通信次数。
CursorLocation 可读写Long类型,指定可流动游标的位置,即CursorType是位于客户端还是位于服务器端,见CursorLocation用到的常数。默认值是使用OLE DB数据源提供的游标。
CusrsorType* 可读写Long类型,指定Recordset游标的类型,见CursorType用到的常数,默认值是forward-only游标
DataMember 指针类型,指向关联的DataEnvironment.Command对象
DataSource 指针类型,指向关联的DataEnvironment.Connection对象
EditMode* 只读Long类型,返回Recordset的编辑状态,见EditMode用到的常数
EOF* 只读Boolean类型,若为True,表明记录指针已超出Recordset的最后一条记录,并且没有了当前记录。
Filter* 可读写variant类型,要么是一条件表达式(一条有效的SQL WHERE子句但又不出现保留字WHERE),要么是指向特定记录的Bookmark数组,要么是一个Filter常数,详见Filter用到的常数。
LockType* 可读写Long类型,指定打开Recordset所使用的记录锁定方法。默认值是只读,对应于forward-only游标的只读特性。见LockType属性用到的常数。
MarshalOptions 可读写Long类型,指定客户端改动后,应返回哪个记录集合,此属性仅适合于不常见的ADOR.Recordset对象,此对象是RDS.ADOR.Recordset对象成员之一。
MaxRecords* 可读写Long类型,指定SELECT查询或存储过程返回的最大记录条数,默认值为0,即全部返回
PageCount 只读Long类型,返回Recordset所有的页数,必须设定了PageSize的值,PageCount的返回值才是真正有意义的。如果Recordset不支持PageCount属性,则返回值为-1
PageSize可读写Long类型,设置或返回一个逻辑页所包含的记录条数。使用逻辑页可把大的Recordset分解为多个易处理的小部分。通常的做法是把PageSize设为DataGrid、MsFlexGrid或层次型的FlexGrid控件所能显示的记录条数。PageSize和锁定Jet(2k)或锁定SQL Server(6.5版及更早版本,2k;7.0版,8k)数据库时用到的表页面大小无关
PersistFormat 可读写Long类型,设置或返回由调用Save方法所创建的Recordset文件的格式。当前仅有一个值adPersistADTG(默认格式:Advanced Data TableGram)
RecordCount* 只读Long类型,如果Recordset支持近似定位或支持书签,则返回带可流动游标的Recordset所含有的记录数;如果不支持,必须使用MoveLast方法以取得确实覆盖了所有记录的准确的RecordCount数值。如果forward-only类型Recordset有一条或多条记录,Recordset返回-1(True),任何类型的空的Recordset都将返回0(False)
Sort* 可读写String类型,包含一条不含保留字ORDER BY的SQL ORDERY BY子句,用以指定Recordset的排序方式
Source* 可读写String类型,可以是SQL语句、表名、存储过程名或相关Command对象名。如果提供了Command对象名,则Source将返回Command.CommandText的值。利用Open方法的参数lngOptions可以指定提供给Source值的类型
State 可读写Long类型,为对象状态常数之一。见State常数
Status 只读Long类型,表明对Recordset进行批处理或其他多记录(bulk)操作后的状态。见Status属性用到的常数

注意:上表所列属性是ADODB.Recordset对象的标准属性,即那些被关系数据库的大多数通用OLE DB数据提供者所支持的属性。带星号的属性表示它与DAO.Recordset或rdoResultset对象的相应属性完全一样或很接近。

方法

方法 用途
AddNew* 向可更新的Recordset添加一条新记录。调用语法为rstName.AddNew[{varField|avarFields},{varValue|avarValuese}],其中varField是单个字段名,avarFields是字段名数组。varValue是单个字段值,avarValue是由avarFields指定字段的值所组成的数组。调用Update方法则把新记录加到数据库的表中。如果向主关键字不是第一个字段的Recordset中添加记录,则必须在AddNew方法中指定主关键字的名称和值
Cancel 取消异步查询的执行,中止存储过程或复合SQL语句创建多个Recordset,调用语法为rstName.Cancel
CancelBatch* 取消LockEdit值为BatchOptimistic的Recordset的即将生效的批量更新操作,调用语法为:rstName.CancelBatch [lngAffectRecords],可选参数lngAffectRecords的取值见lngAffectRecords用到的常数
Clone复制一个带有独立记录指针的Recordset对象,调用语法为:Set rstDupe=rstName.Clone()
Close关闭Recordset对象,以后可以重新设Recordset的属性并使用Open方法来再度访问Recordset 。调用语法为:rstName.Close
Delete* 如果Recordset的LockEdit属性值未设为adLockBatchOptimistic,立刻从Recordset和相应表中删除当前记录
Find 寻找满足指定条件的记录。调用语法为:rstName.Find strCriteria [,lngSkipRecords, lngSearchDirection [,lngStart]],其中strCriteria是不含WHERE关键字的SQL WHERE子句,可选参数lngSkipRecords是应用Find前所跳过的记录数目,lngDirection指定查找方向(adSearchForward,和adSearchBackward,其中adSearchForward是默认值),可选参数lngStart指定了从哪儿开始查找,其值要么是一个Bookmark值,要么是Bookmark常数,见varStart参数用到的Bookmark常数。
GetRows 返回一个二维variant数组(行、列),调用语法为avarname=rstName.GetRows(lngRows [,varStart[,{strFieldName|lngFieldIndex|avarFieldNames|avarFieldIndexes}]],其中lngRows是返回记录行数,varStart指定从哪儿开始查找,其值要么是一个Bookmark值,要么是Bookmark常数,见varStart参数用到的Bookmark常数。第三个参数可以是单个列(字段)的名称或索引,也可以是多个列名称或索引组成的variant数组。如果不指定第三个参数,GetRows返回Recordset中所有列。
GetString 默认情况下,返回指定数目记录的String串值,记录间由返回代码分隔。记录内由tab分隔。调用语法为: strClip=rstname.GetString(lngRows,[, strCloumnDelimiter[,strRowDelimiter,[strNullExpr]]])。其中lngRows为返回记录行数,strColumnDelimiter为可选的列分隔符(vbTab是默认值),strRowDelimiter是可选的行分隔符(vbCr是默认值),strNullExpr是可选参数,用于碰到Null值时的替代值(默认值是空字符串)。GetString的主要用途是通过把控件的Clip属性设为strClip来处理MSFlexGrid或MSHFlexGrid控件
Move*从当前记录移动记录指针。调用语法为:rstName.Move lngNumRecords [, varStart],其中lngNumRecords是要跳过的记录数,可选选参数varStart指定从哪开始移动。其值要么是一个Bookmark值,要么是Bookmark常数,见varStart参数用到的Bookmark常数。
MoveFirst* 移动记录指针到第一条记录,调用语法为:rstName.MoveFirst
MoveLast* 移动记录指针到最后一条记录,调用语法为:rstName.MoveLast
MoveNext 移动记录指针到下一条记录,调用语法为:rstName.MoveNext。它是能用于forward-only Recordset的唯一Move方法
MovePrevious* 移动记录指针到前一条记录,调用语法为:rstName.MovePrevious
NextRecordset 返回另外的Recordset,它通常由能产生多个Recordset的复合SQL语句(如SELECT * FROM orders;SELECT * FROM customers)或存储过程来创建。调用语法为Next=rstName.NextRecordset [(lngRecordsAffected)],其中可选参数lngRecordsAffected指定返回到rstNext中去的记录数目。如果已不存在Recordset,rstNext被设为Nothing
Open 在一个活动Command或Connection对象上打开一个Recordset,调用语法为:rstName.Open [varSource [, varActiveConnection [, lngCursorType [, lngLockType [, lngOptions]]]]]。这些参数都是可选的,
Requery 重新从表中获取Recordset的内容,等效于Close后再Open。它是一个资源集中型操作。语法为:rstName.Requery
Resync* 重新从表中获取部分Recordset内容。调用语法为rstName.Resync [lngAffectRecords],其中lngAffectRecords的取值见lngAffectRecords用到的常数。如果把该参数设为adAffectCurrent或adAffectGroup,则比adAffectAll(默认值)所耗的资源要少。
Save 创建包含Recordset永久性拷贝的文件。调用语法为rstName.Save strFileName。其中strFileName为路径和文件名。通常用.rst作为文件的扩展名。
Supports 如果数据提供者支持指定的游标相关的方法,则返回True,否则返回为False。调用语法为Supported=rstname.Supports (lngCursorOptions).关于lngCursorOptions,见Supports方法用到的常数。
Update* 使对Recordset的修改对底层数据源中的表生效。对于批量操作,Update方法只使修改对本地(Cached)Recordset生效。调用语法为rstName.Update
UpdateBatch* 合对指量类型的Recordset(LockType属性值为adBatchOptimistic,CursorType属性值为adOpenKeyset或adOpenStatic)所做的修改对底层数据源中的表生效。调用语法为rstName.UpdateBatch [lngAffectRecords],其中lngAffectRecords的取值见lngAffectrecords用到的常数。

注:ADODB.Recordset对象不支持Edit方法。为了改变ADODB.Recordset对象当前记录的一个或多个字段的值,可以先使用rstName.Fields(n).Value=varValue把相应字段的值改为所需要的值,而后执行rstName.Update即可。
事件
事件名称 触发时机
EndOfRecordset 记录指针试图移到最后一条记录之外时
FieldchangeComplete 字段值的改变完成之后
MoveComplete Move或Move…方法执行之后
RecordsChangeComplete 对单个记录编辑完成以后
RecordsetChangeComplete 缓存中的改变对底层表生效之后
WillChangField 对字段值改变之前
WillChangeRecord 对单个记录改变之前
WillChangeRecordset 缓存中的改变对底层表生效之前
WillMove Move或Move…方法执行之前
注:事件处理模块的函数头几乎都用到了adReason参数。该参数的取值见adReason参数用到的常数。
常数
AbsolutePage属性用到的常数
常数 含义
adPosUnknown数据提供者不支持页面,Recordset为空,或数据提供者不能确定页码。
adPosBOF 记录指针定位于文件开头(BOF属性值为True)
adPosEOF 记录指针定位于文件结尾(EOF属性值为True)
CursorLocation属性用到的常数
常数 含义
adUseClient 使用客户端游标库提供的游标。ADODB.Recordset要求客户端游标
adUseServer 使用数据源提供的游标,通常(但非绝对)位于服务器上(默认值)
CursorType属性用到的常数
常数 含义
adOpenForwardonly 提供单向移动游标和只读Recordset(默认值)
adOpenDynamic提供可滚动游标,可显示其他用户对Recordset所做的改动(包括添加新记录)
adOpenKeyset 提供可滚动游标,只隐藏其他用户所做的改动,类似于dynaset类型的DAO.Recordset
adOpenStatic 提供一个位于Recordset静态拷贝上的可滚动游标,类似于snapshot类型的DAO.Recordset,但多了可更新特性
EditMode属性用到的常数
常数 含义
adEditNone 无正在进行的编辑操作(默认值)
adEditAdd临时添加一条记录,但尚未存入数据库的表中
adEditInProgress当前记录中的数据已经改动,但尚未存入数据库的表中
Filter属性用到的常数
常数含义
adFilterNone 除去已有的过滤器,显示Recordset中的所有记录(等效于把Filter属性置为空串,默认值)
adfilterAffectedRecords只显示上次CancelBatch、Delete、Resync或UpdateBatch方法执行后所影响的记录
adFilterFetchedRecords只当前Cache中的记录,记录条数由CacheSize来确定
adFilterPendingRecords 只显示已改动但尚未被数据源处理的记录(仅适用于批量更新模式)
LockType属性用到的常数
常数 含义
adLockRecordOnly 指定只读访问(默认值)
adLockBatchOptimistic 使用批量更新模式而不是默认的立即更新模式
adLockOptimistic使用乐观锁(仅在更新过程中才锁定记录或页面)
adLockPessimistic 使用悲观锁(编辑或更新整个过程中均锁定记录或页面)
State常数
常数 含义
adStateClosed Connection(或其他对象)是关闭的(默认值)
adStateConnecting 正在连接数据源的状态
adStateExecuting Connection或Command对象的Execute方法已被调用
adStateFetching返回行(row)到Recordset对象
adStateOpen Connection(或其他对象)是打开的(活动的)
Status属性用到的常数(仅适用于Batch或Bulk Recordset操作)
常数 含义
adRecOK 成功更新
adRecNew 成功添加
adRecModified 成功修改
adRecDeleted 成功删除
adRecUnmodified 无改动
adRecInvalid 未保存:Bookmark属性无效
adRecMultipleChanges 未保存:保存会影响其他记录
adRecPendingChanges 未保存:记录引用了一个等待插入操作
adRecCanceled 未保存:操作被取消
adRecCantRelease 未保存:现有记录值阻止了保存
adRecConcurrencyViolation 未保存:乐观并发锁发生了问题
adRecIntegrityViolation 未保存:操作会影响一致性
adRecMaxChangesExceeded 未保存:存在太多的等待改动
adRecObjectOpen 未保存:打开存贮对象发生冲突
adRecOutofMemory未保存:内存不足
adRecPermissionDenied 未保存:用户权限不够
adRecSchemaViolation 未保存:记录的结构不符合数据库中的定义
adRecDBDeleted 未保存或删除:记录已被删除
lngAffectRecords参数用到的常数
Command类型常数 含义
adAffectAll 包括Recordset对象的所有记录,那些被Filter属性过滤隐藏的记录也计算在内(默认值)
adAffectCurrent 只包括当前记录
adAffectGroup 只包括那些符合当前Filter条件的记录
varStart参数用到的Bookmark常数
常数 含义
adBookmarkCurrent从当前记录开始(默认值)
adBookmarkFirst 从第一条记录开始
adBookmarkLast 从最后一条记录开始
Supports方法用到的常数
常数 含义
adAddNew 调用AddNew方法
adApproxPosition 设置和得到Absoluteposition和AbsolutePage属性值
adBookmark 设置和得到Bookmark属性值
adDelete 调用Delete方法
adHoldRecords 获取另外的记录或改变获取记录指针的位置,但不提交未确定的改变
adMovePrevious 调用GetRows,Move,MoveFirst和MovePrevious方法(表明是一个双向可滚动游标)
adResync 调用Resync方法
adUpdate 调用Update方法
adUpdateBatch 调用UpdateBatch和CancelBatch方法
adReason参数用到的常数
常数 含义
AdRsnAddNew 调用了AddNew方法
AdRsnClose 调用了Close方法
AdRsnDelete调用了Delete方法
AdRsnFirstChange 第一次对记录字段值做了修改
AdRsnMove 调用了Move方法
AdRsnMoveFirst 调用了MoveFirst方法
AdRsnMoveLast 调用了MoveLast方法
AdRsnMovePrevious 调用了MovePrevious方法
AdRsnRequery 调用了Requery方法
AdRsnResync 调用了Resync方法
AdRsnUndoAddNew AddNew操作被用户取消
AdRsnUndoDelete Delete操作被用户取消
AdRsnUndoUpdateUpdate操作被用户取消
AdRsnUpdate 调用了Update方法

1.如何用Asp判断你的网站的虚拟物理路径
答:使用Mappath方法:< %= Server.MapPath(“\”)% >
2.我如何知道使用者所用的浏览器?
答:使用the Request object方法:
<%
strBrowser=Request.ServerVariables(“HTTP_USER_AGENT”)
If Instr(strBrowser,”MSIE”) < > 0 Then
Response.redirect(“formSIEOnly.htm”)
Else
Response.redirect(“ForAll.htm”)
End If
%>
3.如何计算每天的平均反复访问人数
答:解决方法
< % startdate=DateDiff(“d”,Now,”01/01/1990″)
if strdate< 0 then startdate=startdate*-1
avgvpd=Int((usercnt)/startdate) % >
显示结果
< % response.write(avgvpd) % >
that is it.this page have been viewed since November 10,1998
4.如何显示随机图象
< % dim p,ppic,dpic
ppic=12
randomize
p=Int((ppic*rnd)+1)
dpic=”graphix/randompics/”&p&”.gif”
% >
显示
< img src=”< %=dpic% >” >
5.如何回到先前的页面
答:< a href=”< %=request.serverVariables(“Http_REFERER”)% >” >preivous page< /a >
或用图片如:< img src=”arrowback.gif” alt=”< %=request.serverVariables(“HTTP_REFERER”)% >” >
6.如何确定对方的IP地址
答:< %=Request.serverVariables(“REMOTE_ADDR)% >
7.如何链结到一副图片上
答:< % @Languages=vbscript % >
< % response.expires=0
strimagename=”graphix/errors/erroriamge.gif”
response.redirect(strimagename)
% >
8.强迫输入密码对话框
答:把这句话放载页面的开头
< % response.status=”401 not Authorized”
response.end
% >
9.如何传递变量从一页到另一页
答:用 HIDDEN 类型来传递变量
<form method=”post” action=”mynextpage.asp” >
< % for each item in request.form % >
< input name=”< %=item% >” type=”HIDDEN”
value=”< %=server.HTMLEncode(Request.form(item)) % >” >
< % next % >
< /form >
10.为何我在 asp 程序内使用 msgbox,程序出错说没有权限
答:由于 asp 是服务器运行的,如果可以在服务器显示一个对话框,那么你只好等有人按了确定之后,你的程序才能继续执行,而一般服务器不会有人守着,所以微软不得不禁止这个函数,并胡乱告诉你 ( 呵呵) 没有权限。但是ASP和客户端脚本结合倒可以显示一个对话框,as follows:
<%yourVar=”测试对话框”%>
<script language=’javascript’>
alert(“<%=yourvar%>”)
</script>
11.有没有办法保护自己的源代码,不给人看到
答:可以去下载一个微软的Windows Script Encoder,它可以对asp的脚本和客户端javascript/vbscript脚本进行加密。。。不过客户端加密后,只有ie5才能执行,服务器端脚本加密后,只有服务器上安装有script engine 5(装一个ie5就有了)才能执行。
12.怎样才能将 query string 从一个 asp 文件传送到另一个?
答:前者文件加入下句: Response.Redirect(“second.asp?” & Request.ServerVariables(“QUERY_STRING”))
13.global.asa文件总是不起作用?
答:只有web目录设置为web application, global.asa才有效,并且一个web application的根目录下 global.asa才有效。IIS4可以使用Internet Service Manager设置application setting 怎样才能使得htm文件如同asp文件一样可以执行脚本代码?
14.怎样才能使得htm文件如同asp文件一样可以执行脚本代码?
答:Internet Sevices Manager – > 选择default web site – >右鼠键- >菜单属性-〉主目录- > 应用程序设置(Application Setting)- > 点击按钮 “配置”- > app mapping – >点击按钮”Add” – > executable browse选择 \WINNT\SYSTEM32\INETSRV\ASP.DLL EXTENSION 输入 htm method exclusions 输入PUT.DELETE 全部确定即可。但是值得注意的是这样对htm也要由asp.dll处理,效率将降低。
15.如何注册组件
答:有两种方法。
第一种方法:手工注册 DLL 这种方法从IIs 3.0一直使用到IIs 4.0和其它的Web Server。它需要你在命令行方式下来执行,进入到包含有DLL的目录,并输入:regsvr32 component_name.dll 例如 c:\temp\regsvr32 AspEmail.dll 它会把dll的特定信息注册入服务器中的注册表中。然后这个组件就可以在服务器上使用了,但是这个方法有一个缺陷。当使用这种方法注册完毕组件后,该组件必须要相应的设置NT的匿名帐号有权限执行这个dll。特别是一些组件需要读取注册表,所以,这个注册组件的方法仅仅是使用在服务器上没有MTS的情况下,要取消注册这个dll,使用:regsvr32 /u aspobject.dll example c:\temp\regsvr32 /u aneiodbc.dll
第二种方法:使用MTS(Microsoft Transaction Server) MTS是IIS 4新增特色,但是它提供了巨大的改进。MTS允许你指定只有有特权的用户才能够访问组件,大大提高了网站服务器上的安全性设置。在MTS上注册组件的步骤如下:
1) 打开IIS管理控制台。
2) 展开transaction server,右键单击”pkgs installed”然后选择”new package”。
3) 单击”create an empty package”。
4) 给该包命名。
5) 指定administrator帐号或则使用”interactive”(如果服务器经常是使用administrator 登陆的话)。
6) 现在使用右键单击你刚建立的那个包下面展开后的”components”。选择 “new then component”。
7) 选择 “install new component” 。
找到你的.dll文件然后选择next到完成。
要删除这个对象,只要选择它的图标,然后选择delete。
附注:特别要注意第二种方法,它是用来调试自己编写组件的最好方法,而不必每次都需要重新启动机器了。
16. 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
%>
17. 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
%>
18. 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 …) valuess (值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 数据表名称 (永久性删除一个数据表)
19. 记录集对象的方法:
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 更新数据表记录
20 Recordset对象方法
Open方法
recordset.Open Source,ActiveConnection,CursorType,LockType,Options
Source
Recordset对象可以通过Source属性来连接Command对象。Source参数可以是一个Command对象名称、一段SQL命令、一个指定的数据表名称或是一个Stored Procedure。假如省略这个参数,系统则采用Recordset对象的Source属性。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部