Recordset对象方法
上一篇 / 下一篇 2007-05-23 19:16:21 / 个人分类:DataBase
Recordset对象方法
R$o?&Y+eef!l051Testing软件测试网/Mbz7T5l4@7T%?ROpen方法
F*l8UW%?*WZ.\0nZ M VF&U~0recordset.Open Source,ActiveConnection,CursorType,LockType,Options51Testing软件测试网 fF!D&Sg(M Dh
eUx\(pa?.|}0Source51Testing软件测试网)qc)a|]W
d;k.h#m
r
Recordset对象可以通过Source属性来连接Command对象。Source参数可以是一个Command对象名称、一段SQL命令、一个指定的数据表名称或是一个Stored Procedure。假如省略这个参数,系统则采用Recordset对象的Source属性。
ActiveConnection51Testing软件测试网7IV voe.dYz&R8d
Recordset对象可以通过ActiveConnection属性来连接Connection对象。这里的ActiveConnection可以是一个Connection对象或是一串包含数据库连接信息(ConnectionString)的字符串参数。
CursorType
O~O"@8_uus0Recordset对象Open方法的CursorType参数表示将以什么样的游标类型启动数据,包括adOpenForwardOnly、adOpenKeyset、adOpenDynamic及adOpenStatic,分述如下:51Testing软件测试网0wO0B V8R._H&RF7R+h
--------------------------------------------------------------
#Grv,Y_0常数 常数值 说明
fE4c0S q{3p8A1p/Y
q0-------------------------------------------------------------
6NK cuw|2c`$c1Ri0adOpenForwardOnly 0 缺省值,启动一个只能向前移动的游标(Forward Only)。
Sc!D4ed%W{7?0adOpenKeyset 1 启动一个Keyset类型的游标。
AH:_F&q9@2pr0adOpenDynamic 2 启动一个Dynamic类型的游标。51Testing软件测试网/Cjk(^&E0w{4x
adOpenStatic 3 启动一个Static类型的游标。
'{#[pfwd/Y#Ea0-------------------------------------------------------------
2\,ShG$G(c0以上几个游标类型将直接影响到Recordset对象所有的属性和方法,以下列表说明他们之间的区别。
-------------------------------------------------------------51Testing软件测试网;_(\s!vrfF
Recordset属性 adOpenForwardOnly adOpenKeyset adOpenDynamic adOpenStatic
2O.}0YJ6ofl0-------------------------------------------------------------
lB5AD9@Z"\/c^MU0AbsolutePage 不支持 不支持 可读写 可读写
1Z9`
U,CPss0AbsolutePosition 不支持 不支持 可读写 可读写51Testing软件测试网~3B,RkY'M&U#i
ActiveConnection 可读写 可读写 可读写 可读写51Testing软件测试网#XD?1zC
BOF 只读 只读 只读 只读
?o9b~p-T8b o6l yc0Bookmark 不支持 不支持 可读写 可读写
Drq GF)i WFb.f/g0CacheSize 可读写 可读写 可读写 可读写
ag
W3a:g'm!p.?a s0CursorLocation 可读写 可读写 可读写 可读写
'IH7s-_vzGe
|v0CursorType 可读写 可读写 可读写 可读写
0c
e5T }Hqt,~0EditMode 只读 只读 只读 只读51Testing软件测试网#d"b%m5Q+C#J
EOF 只读 只读 只读 只读51Testing软件测试网;kM X
w]M6E*g|g
Filter 可读写 可读写 可读写 可读写
SF9Q7nicld0LockType 可读写 可读写 可读写 可读写
'L_C }H0MarshalOptions 可读写 可读写 可读写 可读写
:JG0B4{X0MaxRecords 可读写 可读写 可读写 可读写
&~/l0a'f+[7|K"YT0PageCount 不支持 不支持 只读 只读
TeP t'l+v0PageSize 可读写 可读写 可读写 可读写51Testing软件测试网Y7S7z+SK
RecordCount 不支持 不支持 只读 只读51Testing软件测试网:GF7p#d0K!]+^[
Source 可读写 可读写 可读写 可读写51Testing软件测试网C2EA7DAidftq%M
State 只读 只读 只读 只读
x9{h9MN7D`0Status 只读 只读 只读 只读
s}/T:Xy$N0AddNew 支持 支持 支持 支持51Testing软件测试网1Xq7Qzk]#n+T$q
CancelBatch 支持 支持 支持 支持51Testing软件测试网:j)y5UvVa?q
CancelUpdate 支持 支持 支持 支持
$sb6H/fC0Clone 不支持 不支持
L)\t0mU(L(b1?[~0Close 支持 支持 支持 支持51Testing软件测试网2o)?6o/Fix(nH"m;[
Delete 支持 支持 支持 支持51Testing软件测试网?0@~-Q%s
GetRows 支持 支持 支持 支持51Testing软件测试网(_ [,|sk)V
Move 不支持 支持 支持 支持51Testing软件测试网G0| j:P(l
MoveFirst 支持 支持 支持 支持
E.A-LP+Yc~2zl hF0MoveLast 不支持 支持 支持 支持51Testing软件测试网_e0d(GTk_
MoveNext 支持 支持 支持 支持
p"f ?z'S0MovePrevious 不支持 支持 支持 支持
s6}V [)I_
Vp0NextRecordset 支持 支持 支持 支持
w{R?zpJ*f0Open 支持 支持 支持 支持51Testing软件测试网n$?@.k0J1a0?gf
Requery 支持 支持 支持 支持51Testing软件测试网Xk3o:\#c,lX
Resync 不支持 不支持 支持 支持51Testing软件测试网4a}4K*Wl8f/AW)BX
Supports 支持 支持 支持 支持
z0|
je$Zo8C0Update 支持 支持 支持 支持
wL)c3t,J$M9z0UpdateBatch 支持 支持 支持 支持
{tut*K;q$RSB0--------------------------------------------------------------51Testing软件测试网ry$p.w"kU
其中NextRecordset方法并不适用于Microsoft Access数据库。51Testing软件测试网9eJ)m%?6b5e
LockType51Testing软件测试网{TV3bA~Hg1x
Recordset对象Open方法的LockType参数表示要采用的Lock类型,如果忽略这个参数,那么系统会以Recordset对象的LockType属性为预设值。LockType参数包含adLockReadOnly、adLockPrssimistic、adLockOptimistic及adLockBatchOptimistic等,分述如下:51Testing软件测试网'Z,R0H9vU%T1ha$gXN
|bhL(^7w'Lle|0-------------------------------------------------------------
-@1|*Xn2x%V&~;^0常数 常数值 说明
w
tKK$] E1nXz!A0--------------------------------------------------------------
0q6P
}^
H S0adLockReadOnly 1 缺省值,Recordset对象以只读方式启动,无法运行AddNew、Update及Delete等方法
:J%deb7N0adLockPrssimistic 2 当数据源正在更新时,系统会暂时锁住其他用户的动作,以保持数据一致性。
-KB4J \,]tw%jy0adLockOptimistic 3 当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、改的操作。51Testing软件测试网M)Qd_/^c M7O+D
adLockBatchOptimistic 4 当数据源正在更新时,其他用户必须将CursorLocation属性改为adUdeClientBatch才能对数据进行增、51Testing软件测试网:X2N*?2v2P#^ |6jhY$_
删、改的操作。
"f1`x[1yPv0ActiveConnection 设置或返回Command对象的连接信息,该属性可以是一个Connection对象或连接字符串。
t`A)PNt-G9pGV$y
r)]051Testing软件测试网R3z.` i)RcFoo\
CommandText 设置或返回对数据源的命令串,这个串可以是SQL语句、表、储存过程或数据提供者支持的任 何特殊有效的命令文本。
0m-AX,M4i0
W7Z5@'^x3Xe Y0`0Prepared 提出在调用Command对象的Execute方法时,是否将查询的编译结果储存下来。如果将该属性设 为True,则会把查询结果编译并保存下来,这样针影响第一次的查询速度,但一但数据提供者编译了Command对 象,数据提供者在以后的查询中将使用编译后的版本,从而极大的提高了速度
:CZ&E#[~8YVK051Testing软件测试网 K:|5d1WpN(k9ob/G{(}
CommandTimeout 设置执行一个Command对象时的等待时间,默认值是30秒。如果在这个时间内Command对象没 有执行完,则终止命令并产生一个错误
[S0H~1J
Ym8E0
O-C[N
?8p4B
iS}0CommandType
U4Xg.O0@wo-N I%p0指向Command对象的类型,取值如下:51Testing软件测试网'[ MKu'r,@C1k
oO-q'dk8nzd-AI01 或 adCmdText:CommandText 是一个SQL语句;51Testing软件测试网mB+p,yi}
51Testing软件测试网8h.wJY$e UV)j.o%k2 或 adCmdTable:CommandText 是一个表名,ADO会产生一个对该表的查询,以返回该表的全部行和列。
$X"F&N!lSh051Testing软件测试网P7q8hT#a E/iy%R+et4 或 adCmdStoredProc:CommandText 是一个储存过程名
t&F&WD0u8F"EL$s051Testing软件测试网;U8S:x9Zv%E4C }(?8 或 adCmdUnknown:默认值。 CommandText内容是未知的51Testing软件测试网C1dTcgxM)b
\7D cl/@u0128 或 adExecuteNoRecords:CommandText 是一个不返回记录集的命令或存储过程。如果可以取记录,这些记 录将被丢弃。该值总是和adCmdText或adCmdStoredProc一起使用;51Testing软件测试网I-\-\j7S]7kP3o
51Testing软件测试网7`%b [+T l)h1h256 或 adCmdfile:CommandText 是已存在的记录集的文件名;51Testing软件测试网C~zE!G*Y!w
51Testing软件测试网a-g%BvG.K!PO"nj`-_U512 或 adCmdTableDirect:CommandText 是一个表,在查询中该表的全部行和列将被返回51Testing软件测试网7ln%P[+BIn$vZ5l6i'I
51Testing软件测试网M/U;V/^zqe--------------------------------------------------------------------51Testing软件测试网f4ySqo1B6h6\'p"O
'xg NsA0Command 对象的方法
(Af~(l6v8`%t0PghyR{051Testing软件测试网a3\b[4P
h
Cancel 取消一个未确定的异步执行的Execute方法。如果执行Execute方法时未指定adRunAsync参数,则 Cancel方法会返回一个运行时错误
51Testing软件测试网@&t9x Q7E$L
T;Wbu
CreateParameter 创建一个新的Parameter对象。Parameter对象表示传递给SQL语句或储存过程的一个参数51Testing软件测试网'r-C]-~2w6s].]
$A1G0X8E2i?
}(Fhk0
T6iT(f
h
lP"V0Execute 执行一个由CommandText属性指定的查询、SQL语句或储存过程。该方法调用所返回的记录集是仅向 前和只读的游标。如果想得到其它类型的游标或写数据,则必需一个Recordset对象并用Open方法打开记录集。
}ZBoz(e'S;ns0
!X'\&|Pj8Awu0g{ H A,Q2^0
ed#i%\Q"c!W0-------------------------------------------------------------------
.D&Xa0c4j0Type 的属性
*V
r:v}.vB*lz0
vv;W*Uc$qzs/~6X0adBigInt 20 八位符号整数
;T#e.B)h0kl%}0adBinary 128 二进制值51Testing软件测试网E)?$FU#l'cr9W
51Testing软件测试网MH!H#Il3XadBoolean 11 布尔值
q;Tib S7s^051Testing软件测试网)};{~/d)bI7F8o&dadBSTR 8 以空值结束的Unicode字符串51Testing软件测试网6t5D(@Y0[%x~{
51Testing软件测试网3}+M!mz-D|iB1FadChar 129 字符串值
7n zpG5EX06t@ZH(VK-}J"UY0adCurrency 6 货币值,8字节长
T+U],p2J%KW3G"`0P;GN!R!zn3s s:gr0adDate 7 日期值
)A3~s`y051Testing软件测试网\ {W;FpKstadDBDate 133 日期值,格式是:yyyymmdd51Testing软件测试网V.TiLZfO#Y
51Testing软件测试网Ei-Jm0U1v _O;ladBDTime 134 时间值,格式是:hhmmss
2D$g L"fN Y9yh o%A+M051Testing软件测试网+\8e"xcbPeyadDBTimeStamp 135 日期时间戳,格式是:yyyymmddhhmmss51Testing软件测试网_r7` t(qn-i6@
51Testing软件测试网"i0e$O9{PxadDecimal 14 有固定精度的数值
&A"D!VBLD p051Testing软件测试网iL/vG8\1?9aadDouble 5 双精度浮点值
6}9|A'@C1s6S051Testing软件测试网r}"xL9X4o|V{adEmpty 0 无指定值
1Y!~j,TcM_-JM051Testing软件测试网6W5U1{YH sIf8`-^adError 10 32位错误码51Testing软件测试网eJo:^M6],Vx2`
lI*o9A%I0uh1I5\/B:h0adGUID 72 全局唯一指示符51Testing软件测试网O#D&}{+v?
"T*K!hRLj[/t0adIDispatch 9 指向OLE对象的接口指针51Testing软件测试网"z2b!ocr8B
51Testing软件测试网w2]yG+K6A1R*zadInteger 3 四位符号整数
n+~] RM({051Testing软件测试网Gl~j {W_ XadIUnknown 13 指向OLE对象的IUnknown接口指针
~aO,E&RT"S&fZ4\051Testing软件测试网P;Nt?G rIadLongVarBinary 205 长整型二进制(仅用于Parameter对象)51Testing软件测试网i3fz&Ub;K5M7U#n| ^
{e+V5}!U-F|(eN0adLongVarChar 201 长字符串值(仅用于Parameter对象)51Testing软件测试网QM'V M3f;MU(}K
51Testing软件测试网 W joa&yV)u8sadLongVarWChar 203 以空值结束的长字符串值(仅用于Parameter对象)
V*dIZd$e051Testing软件测试网!I*J Dq4EC#BU;ZadNumeric 131 有固定精度的数值
;KS.iZ/M4|_I{?k051Testing软件测试网}Yw5omzl)^LadSingle 4 单数度浮点值51Testing软件测试网;XwPzk7t[Gf
51Testing软件测试网h;H&HUh\rKadSmallInt 2 两位符号整数
/w)gw~f[(e8m051Testing软件测试网g-L MwI$S)u/l7}adTinyInt 16 一位符号整数
@$u:GCz.Di051Testing软件测试网H4z2c;u2S*U8y)Zl i oadUnsignedInt 21 八位无符号整数51Testing软件测试网.S3q2y6f&DL(r3P'b.N
~0RX"nBb,z:e Sx0adUnsignedSmallInt 19 四位无符号整数51Testing软件测试网)vo K{b ](@ ?.y(dA
51Testing软件测试网V@8w$q\[&\\radUserDefined 132 用户定义的变量51Testing软件测试网h mS0ELxS
9_zg}6ds5yck0adVarBinary 204 二进制值(仅用于Parameter对象)51Testing软件测试网1M }r$M"FK$j1e
N,K!Z(xm%O#l2X3`RMQ0adVarChar 200 字符串值(仅用于Parameter对象)51Testing软件测试网&?S'efO/_
3S:Zay+U$Cm$V051Testing软件测试网Tj,EUtxjt
----------------------------------------------------------51Testing软件测试网2ww&iIjM2J
:Pe4CCQ9z)I,H0Direction 设置参数的数据流向51Testing软件测试网T'\?5_8KZ U&d:D
|(ACH(w\"tk"D0adParamInput 1 输入参数,即传送数据给一个存储过程51Testing软件测试网j Ve8{ A ER u0r
51Testing软件测试网0WFT|qadParamOuput 2 输出参数,即从得到Command对象执行后的输入值
6Ei9]7iPm\2yC7N0n7aP&phR![`0adParamInputOutput 3 输入和输出参数,即传送并接收数据51Testing软件测试网u n9x$|H$Jo'[5Z
:IJiH7~0adParamReturnvalue 4 返回值,用来读取从存储过程返回的状态值
;w*YiK+nW051Testing软件测试网h3`H GLO_Z#@Q51Testing软件测试网"b2x@
]*N
L;MY${
---------------------------------------------------------------------
]L W$s-iFs9ah0Command对象的基本用法51Testing软件测试网,U9J{@|VW0A
(^T
wYoB0
jpt0?)@sF-_*V0Set cm = Server.CreateObject("ADOBD.Command")
*o8m4cD0}1Z.G0Set cm.ActiveConnection = conn
‘将Command对象与Connection对象关联后,接着用CommandText属性来定义一个命令串,这个串将由Execute方 法执行。51Testing软件测试网X9o4F6LPE5h"F)NM
or
l&g0z:bS0cm.CommandText = "select * from books"
/vk9u)~O1v-aT1Q0cm.CommandType = adCmdText51Testing软件测试网&\;ET~:{c
j)RD-]&^u#i(_0或者将命令串定义为一个表名51Testing软件测试网]u1g@6Cpt9SC
G3z&ZM2T#p-|n*p3e0cm.commandText = "books"
pS4e3x7z__0cm.CommandType = adCmdTable
5EG4pq$E_cR*S1P8w~0设置CommandText属性后,就可以执行Command对象了。执行Command对象,实际上就是执行Command对象所指定 的查询。
7\(G`XfXt0'H^:r ~[:G:an051Testing软件测试网fDb0D[+ggp)j"Tu
```````````````````````````````````````````````````51Testing软件测试网tc
f7aZ^*a
```````````````````````````````````````````````````
8cq'qzw(r*x0
|5LY%g1ui0使用参数的情况:
G*pR,j+URu051Testing软件测试网B(Wg(yd)PJ8t
要执行一个参数查询,必须先调用CreateParameter方法创建一个Parameter对象,然后调用Append方法将其添 加到Parameters集合中,再将值赋予给参数。例如:
‘创建一个Parameter对象并将其添加到Parameters集合中51Testing软件测试网!nY-F'S8u6dgG;z
cm.Parameters.Append cm.CreateParameter("OrderId",adVarChar,,6)51Testing软件测试网P(k/m~4I(dYK3w"A;Y
cm("OrderID") = "D00001" ‘未选择时,将第一个订单号赋予参数
j4ac0H(u eQ;r0CreateParameter方法的语法是:
set para = comm.CreateParameter(Name,Type,Direction,Size,value)
8qT;o-Dxn051Testing软件测试网9m_a'V3H_其中,para是CreateParameter方法返回的Parameter对象。comm是已创建的Command对象。Name定义了参数的名 称。Type定义了参数的类型
;qZ0? yF4X0f*V0p O^2jS8n5u?-aZJT0
Q#C6?9G M8yJ051Testing软件测试网 U~HR'A[O lParameters 集合和 Parameter 对象
v G]m9] L,a\06TXL-l A0Command对象包含一个Parameters集合。Parameters集合包含参数化的Command对象的所有参数,每个参数信息 由Parameter对象表示。51Testing软件测试网5P8JC"F2W:h^
lhkeK)B%MK1qf^051Testing软件测试网t|;tkq YX
Parameters集合的属性和方法
Count 属性 返回Command对象的参数个数
(n| P:O+n)FE09R5px'MP1k` CD0Append方法 增加一个Parameter对象到Parmeters集合中。
Sj{ G!\c0~]Q$IyFF-q1U0Delete 方法 从Parameters集合中删除一个Parameter对象。
u)~+h!UUPU o0*L)U R%|!} VQ0
qdo?in1sqOxo9T2T0Bs,xk3VA0------------------------------------------------------------------------
E#ip6_RS
D0------------------------------------------------------------------------
调用存储过程
6qss?'Q }v0m7d p\m0Set cm = Server.CreateObject("ADOBD.Command")51Testing软件测试网 cs0K;Ojz Q+A
SEt cm.ActiveConnection = conn51Testing软件测试网Z']:^NY%U8LF$z
‘将CommandText属性设为存储过程名51Testing软件测试网g)WLU+giDY
cm.CommandText = "sp_proc"51Testing软件测试网`l6yb j
‘将CommandType属性设为储存过程
y7m{c5N$h0cm.CommandType = adCmdStoredProc
2N([&b1i{0‘创建第一个参数51Testing软件测试网j3E*N7fS
&u-^ wU Gm0dV^0Set param = cm.CreateParameter("@test",adVarChar,adParamInput,10)51Testing软件测试网@[.?4RYBL
51Testing软件测试网!G2pWxnFdH‘添加到Parameters集合中
#d.Q2o,g P4TE0a4c#Y,p~el0cm.Parameters.Append param
M [q[z8`*MJ$U8E0{K4G;lY*CDI-U'l0‘创建第二个参数
:X.g c+_1a:q051Testing软件测试网9wf|2l#K BbSet param = cm.CreateParameter("@dates",adDate,adParamInput)
Y8[&M$JXb,I8CM0P@O2l6ZD)Y0‘添加到Parameters集合中
AJ`A:E-H(i)PU0.d$k%I*P`/t2r'a0cm.Parameters.Append param
o5Y{'_%n?/D0O5LD9}s M~c&j0设置输入值
:Z%pJ'CURO7W051Testing软件测试网msF}w1gcm("@test") = "小说"51Testing软件测试网Rl1t%InJ p0jIcS
:d%F(tVPz0cm("@dates") = "1998-3-1"
N0A;Y N"\+B`t1yMj"S9i051Testing软件测试网tGTf s0u;~
B~1S8W|
wb6Yh0rs.open cm,,1,1 51Testing软件测试网2A4A7yJk)W
相关阅读:
- The Third Normal Form(3NF) (overn, 2007-4-13)
- sql 经典语句 (overn, 2007-4-14)
- 数据完整性 (overn, 2007-4-16)
- 什么是存储过程 (overn, 2007-4-18)
- 什么是触发器? (overn, 2007-4-18)
- Update触发器的冲突问题 (overn, 2007-4-18)
- 数据库名词 (overn, 2007-4-19)
- ASP调用存储过程(转) (overn, 2007-5-11)
- "SQL Server 不存在或访问被拒绝"解决方案 (rain_wind, 2007-5-11)
- CreateParameter 方法 (overn, 2007-5-23)
TAG: DataBase
标题搜索
日历
|
|||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
1 | 2 | 3 | 4 | 5 | 6 | ||||
7 | 8 | 9 | 10 | 11 | 12 | 13 | |||
14 | 15 | 16 | 17 | 18 | 19 | 20 | |||
21 | 22 | 23 | 24 | 25 | 26 | 27 | |||
28 | 29 | 30 |
数据统计
- 访问量: 76623
- 日志数: 93
- 建立时间: 2007-03-22
- 更新时间: 2007-12-31