• vb中adOpenKeyset, adLockOptimistic


    adOpenStatic 向前游标
    adOpenKeyset 键集游标
    adLockOptimistic设置窗口为固定的大小

    附带一个小资料:
    -----------------------------------
    常数 常数值 说明
    -----------------------------------
    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才能对数据进行增、删、改的操作。

    =====定义数据库连接的一些常量
    <%
    Const adOpenForwardOnly = 0 '游标只向前浏览记录,不支持分页、Recordset、BookMark
    Const adOpenKeyset = 1 '键集游标,其他用户对记录说做的修改将反映到记录集中,但其他用户增加或删除记录不会反映到记录集中。支持分页、Recordset、BookMark
    Const adOpenDynamic = 2 '动态游标功能最强,但耗资源也最多。用户对记录说做的修改,增加或删除记录都将反映到记录集中。支持全功能浏览(ACCESS不支持)。
    Const adOpenStatic = 3 '静态游标,只是数据的一个快照,用户对记录说做的修改,增加或删除记录都不会反映到记录集中。支持向前或向后移动

    Const adLockReadOnly = 1 '锁定类型,默认的,只读,不能作任何修改
    Const adLockPessimistic = 2 '当编辑时立即锁定记录,最安全的方式
    Const adLockOptimistic = 3 '只有在调用Update方法时才锁定记录集,而在此前的其他操作仍可对当前记录进行更改、插入和删除等
    Const adLockBatchOptimistic = 4 '当编辑时记录不会被锁定,而更改、插入和删除是在批处理方式下完成的

    Const adCmdText = &H0001
    Const adCmdTable = &H0002
    %>
     
     
    Open("SELECT * FROM users",_variant_t((IDispatch *)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText); 

    Open方法的原型是这样的:

    HRESULT Recordset15::Open ( const _variant_t & Source, const _variant_t & ActiveConnection, enum CursorTypeEnum CursorType, enum LockTypeEnum LockType, long Options )

    其中:
    ①Source是数据查询字符串
    ②ActiveConnection是已经建立好的连接(我们需要用Connection对象指针来构造一个_variant_t对象)
    ③CursorType光标类型,它可以是以下值之一,请看这个枚举结构:

    enum CursorTypeEnum
    {
    adOpenUnspecified = -1,
    ///不作特别指定

    adOpenForwardOnly = 0,
    ///前滚静态光标。这种光标只能向前浏览记录集,比如用MoveNext向前滚动,这种方式可以提高浏览速度。但诸如BookMark,RecordCount,AbsolutePosition,AbsolutePage都不能使用

    adOpenKeyset = 1,
    ///采用这种光标的记录集看不到其它用户的新增、删除操作,但对于更新原有记录的操作对你是可见的。

    adOpenDynamic = 2,
    ///动态光标。所有数据库的操作都会立即在各用户记录集上反应出来。

    adOpenStatic = 3
    ///静态光标。它为你的记录集产生一个静态备份,但其它用户的新增、删除、更新操作对你的记录集来说是不可见的。
    };

    ④LockType锁定类型,它可以是以下值之一,请看如下枚举结构:

    enum LockTypeEnum
    {
    adLockUnspecified = -1,
    ///未指定

    adLockReadOnly = 1,
    ///只读记录集

    adLockPessimistic = 2,
    悲观锁定方式。数据在更新时锁定其它所有动作,这是最安全的锁定机制

    adLockOptimistc = 3,
    乐观锁定方式。只有在你调用Update方法时才锁定记录。在此之前仍然可以做数据的更新、插入、删除等动作

    adLockBatchOptimistic = 4,
    乐观分批更新。编辑时记录不会锁定,更改、插入及删除是在批处理模式下完成。
    };
  • 相关阅读:
    django-rest-framework
    史上最全的状态码
    __new__、__init__、__call__三个特殊方法
    量化投资与Python之pandas
    MongoDB 3.0 Release Notes
    TokuMX写操作无法加锁的问题
    TokuMX唯一索引不支持dropDups选项
    接着写吧
    Windows下Python IDLE设置
    20145320周岐浩免考
  • 原文地址:https://www.cnblogs.com/huhewei/p/6710050.html
Copyright © 2020-2023  润新知