闻心阁

一蓑烟雨看苍生,半壶浊酒笑红尘

ADO编程RecordSet.OPEN参数解释

2011-10-28 约 1 分钟读完 搬砖秘籍

继续纠结ADO编程,基于OLE DB的ADO编程的确很方便,这几天一直在折腾这个ADO,所以见到不懂的就记录一下。在使用ADO的RecordSet中有个OPEN函数,其中有很多参数,我是从网上copy的代码,知其然不知其所以然,所以就搜索了一下,高手勿进。

记得在上一篇VC++ADO编程小记中我已经提到了RecordSet中的OPEN函数很重要。这里就把RecordSet中的OPEN参数说明一下。首先先看一个open的实例。

m_pRecordset->Open(_bstr_t(_T("imageADO")),_variant_t((IDispatch *)m_pConnection,true), adOpenDynamic,adLockOptimistic, adCmdTable);

通过msdn,我们了解一下后面三个参数 recordset.Open Source, ActiveConnection, CursorType, LockType, Options

参数

Source  可选,变体型,计算 Command 对象的变量名、SQL 语句、表名、存储过程调用或持久 Recordset 文件名。

ActiveConnection   可选。变体型,计算有效 Connection 对象变量名;或字符串,包含 ConnectionString 参数。

CursorType   可选,CursorTypeEnum 值,确定提供者打开 Recordset 时应该使用的游标类型。

AdOpenForwardOnly=0 (默认值)打开仅向前类型游标。

AdOpenKeyset=1       打开键集类型游标。

AdOpenDynamic=2  打开动态类型游标。

AdOpenStatic=3        打开静态类型游标。

LockType   可选。确定提供者打开 Recordset 时应该使用的锁定(并发)类型的 LockTypeEnum 值,可为下列常量之一

AdLockReadOnly=1    (默认值)只读 — 不能改变数据。 AdLockPessimistic=2    保守式锁定(逐个) — 提供者完成确保成功编辑记录所需的工作,通常通过在编辑时立即锁定数据源的记录。 AdLockOptimistic=3    开放式锁定(逐个) — 提供者使用开放式锁定,只在调用Update 方法时才锁定记录。 AdLockBatchOptimistic=4    开放式批更新—用于批更新模式(与立即更新模式相对)。
Options   可选,长整型值,用于指示提供者如何计算 Source 参数(如果它代表的不是 Command 对象),或从以前保存 Recordset 的文件中恢复 Recordset。可为下列常量之一
adCmdText    指示提供者应该将 Source 作为命令的文本定义来计算。 adCmdTable    指示 ADO 生成 SQL 查询以便从在 Source 中命名的表中返回所有行。 adCmdTableDirect    指示提供者更改从在 Source 中命名的表中返回所有行。 adCmdStoredProc    指示提供者应该将 Source 视为存储过程。 adCmdUnknown    指示 Source 参数中的命令类型为未知。 adCmdFile    指示应从在 Source 中命名的文件中恢复保留(保存的)Recordset。 adAsyncExecute    指示应异步执行 Source。 adAsyncFetch    指示在提取 Initial Fetch Size 属性中指定的初始数量后,应该异步提取所有剩余的行。如果所需的行尚未提取,主要的线程将被堵塞直到行重新可用。 adAsyncFetchNonBlocking    指示主要线程在提取期间从未堵塞。如果所请求的行尚未提取,当前行自动移到文件末尾。
就这些了,在此mark一下,以后或许会用到。