ODAC(V9.5.15) 学习笔记(四)TCustomDADataSet(4)

6.Options

TCustomDADataSet的选择项为TDADataSetOptions,其成员介绍如下表 :


名称


类型


说明


TDADataSetOptions


AutoPrepare


Boolean


执行SQL前是否自动执行Prepare


CacheCalcFields


Boolean


缓冲计算字段(TField.Calculated)和Lookup字段(Tfield.Lookup),能有效提高数据集访问速度,但是也会导致内存使用增加


CompressBlobMode


Boolean


存储的BLOB字段内容是否进行压缩


DefaultValues


Boolean


数据集将自动填写字段的DefaultExpression属性


DetailDelay


Integer


主数据集记录滚动情况下,获取或从表数据集数据的延时时间(毫秒),缺省为0表示立即刷新


FieldsOrigin


Boolean


打开数据集时是否自动获取各个字段的Origin属性值


FlatBuffers


Boolean


决定如何处理ftString和ftVarBytes类型的字段对字符串结尾。如果是True则没有结束符


LocalMasterDetail


Boolean


主表的该属性如果为True,表示在本地形成一个Master/Detail关系。一般情况下,主从关系数据集是先开启主数据集,针对主数据集的每一条记录,从数据集去获取相应的数据,这样最大的诟病是如果主数据集记录有多少条,就需要执行多少次从数据集的查询,效率非常低下。通过本地建立主从关系,并开启本地的缓冲模式,将大大提高数据库服务器的使用效率。

另外从表的缓冲模式开启(CachedUpdates=Ture)也必须是在LocalMasterDetail为True情况下才有效。


LongStrings


Boolean


如果为True,则当字符串字段的长度超过255时,按照TStringField处理


NumberRange


Boolean


是否对TIntegerField或TFloatField类型字段的取值范围进行最大和最小限制


QueryRecCount


Boolean


如果数据集的FetchAll属性为False,则数据集会执行SQLRecCount中的SQL语句获取数据集数量,并填写在RecordCount属性上


QuoteNames


Boolean


在自动生成的SQL语句中罗列所有相关字段


RemoveOnRefresh


Boolean


调用RefreshRecord刷新数据时,自动删除数据库中已经不存在的记录。这些记录有可能是被其他用户删除了。


RequiredFields


Boolean


如果为True,则数据集在开启时自动将数据库中NOT NULL字段对象设置Required属性为True


ReturnParams


Boolean


如果为True,则插入或更新数据记录后,利用SQLInsert或SQLUpdate语句中的OUT参数获取数据库中最新的值


SetFieldsReadOnly


Boolean


如果为True,则自动将数据集中非更新表或数据字段的ReadOnly属性设置为True


StrictUpdate


Boolean


当数据集的更新、删除和新值操作从数据库返回发生作用的记录数不为1时触发异常,RefreshRecord函数返回的记录数大于1时也会触发异常


TrimFixedChar


Boolean


是否对字符串字段自动去除空格


UpdateAllFields


Boolean


在自动生成INSERT或UPDATE语句时是否列举全部字段


UpdateBatchSize


Integer


当数据集处于缓冲模式下时,允许进变动数据批量提交处理的数量,缺省为1


TOraDataSetOptionsDS


AutoClose


Boolean


当获取到全部数据后,自动关闭OCI的游标。


CacheLobs


Boolean


是否在本地开辟缓冲来保存BLOB数据


DeferredLobRead


Boolean


如果为True,则Oracle8下的BLOB字段只有在需要时才读取


HideRowId


Boolean


是否隐藏ROWID字段,缺省True


KeepPrepared


Boolean


当数据集关闭后,是否继续保持准备状态


ScrollableCursor


Boolean


如果为True,则ODAC不再为数据建立本地数据集光标,而是使用服务器的游标,且该游标是允许双向滚动的


TOraDataSetOptions


ExtendedFieldsInfo


Boolean


数据集在开启时是否获取字段的扩展信息,对TSmartQuery组件而言缺省是True,其他数据集组件是False


FullRefresh


Boolean


在执行RefreshRecord函数时是否刷新所有字段,False时只刷新更新字段


FieldsAsString


Boolean


是否将BLOB字段以外的其他数据类型的字段都按照字符串字段处理


PrefetchRows


Integer


当执行SQL进行数据预读取时,通过OCI接口获取数据的记录数


PrepareUpdateSQL


Boolean


更新数据的SQL语句在执行前是否自动进行准备


RawAsString


Boolean


是否将RAW数据类型的字段按照字符串类型字段处理,缺省True


ReflectChangeNotify


Boolean


如果是True,且数据集的ChangeNotification属性被指定了一个组件,那么当数据集对应的表在数据库中进行了DML或DDL变化,将产生变更通知消息,并对当前数据集进行相应刷新。


StatementCache


Boolean


是否允许OCI进行该数据集的执行SQL的语句缓冲。启用该功能前必须确保TOraSession组件的Options.StatementCache处于开启状态。

时间: 2024-08-03 11:14:47

ODAC(V9.5.15) 学习笔记(四)TCustomDADataSet(4)的相关文章

ODAC(V9.5.15) 学习笔记(四)TCustomDADataSet(1)

1.SQL相关 名称 类型 说明 BaseSQL String 没有被AddWhere.SetOrderBy.FilterSQL等方法处理过的原始SQL语句 FinalSQL String 被AddWhere.SetOrderBy.FilterSQL等方法处理过的最终SQL语句 SaveSQL 将SQL属性中的值保存到BaseSQL中,以便在处理后能够还原 RestoreSQL 从BaseSQL中将语句还原到SQL属性 SQLSaved Boolean SQL是否被保存到BaseSQL中 SQL

ODAC(V9.5.15) 学习笔记(四)TCustomDADataSet(5)

7.其他 名称 类型 说明 FindKey 类似于BDE的相关功能,在当前数据集中查找指定的记录 FindNearest 移动游标到最符合查找要求的第一条记录处 FindMacro 当前数据集中是否存在指定的宏 FindParam 当前数据集中是否存在指定的参数 GetDataType 获取指定字段的内部数据类型 GetFieldObject 获取数据集中指定字段的共享对象 GetFieldPrecision 获取数值字段的精度 GetFieldScale 获取字段的范围 GotoCurrent

ODAC(V9.5.15) 学习笔记(四)TCustomDADataSet(2)

2.连接相关 名称 类型 说明 Connection 指向一个数据库连接对象 Disconnected 设置为True将在数据库关闭后继续保持数据集的开启状态. 3. 数据获取 名称 类型 说明 FetchRows Integer 从数据库服务器获取一次性获取数据记录的条数,缺省25条. IsQuery Boolean 当数据集Prepare后,判断SQL是否是SELECT语句并能返回数据 RefreshRecord 从数据库中重新获取当前记录值并刷新内容显示,使用的SQL由SQLRefresh

ODAC(V9.5.15) 学习笔记(四)TCustomDADataSet(3)

4. 主从表关系 名称 类型 说明 MasterSource 从表对应于主表的DataSource组件 DetailFields 从表中对应于主表字段的外键字段 MasterFields 主表中关联从表的字段,一般为主表的关键字段 5.执行相关 名称 类型 说明 KeyFields String 用于数据集SQLDelete.SQLInsert和 SQLUpdate属性中构建SQL时用到的关键字段.该属性也用于在通过序列自动获取主键值的场合 RowsAffected Integer 执行插入.更

ODAC(V9.5.15) 学习笔记(四)TOraQuery (1)

TOraQuery是ODAC中常用的一个组件,其继承关系如下: TDataSet ---TMemDataSet ---TCustomDADataSet ---TOraDataSet ---TCustomOraQuery ---TOraQuery TOraQuery的主要特有属性为: 名称 类型 说明 UpdatingTable String 在没有设置SQLInsert.SQLUpdate.SQLDelete属性情况下,SELECT的SQL语句返回结果需要更新到数据库中时,或需要刷新当前记录时,

ODAC(V9.5.15) 学习笔记(四)TOraDataSet

名称 类型 说明 SequenceMode TSequenceMode ODAC可以直接利用Oracle中的序列对象为表的主键赋值,从而实现主键自动增长的功能.该属性决定了在什么场合下使用序列: smInsert       新增记录时 smPost          更新记录时 注意:根据序列更新的字段由KeyFields决定 KeySequence Oracle中用于生成主键的序列名称 CheckMode TCheckMode 在更新一条记录前,对当前记录进行检查的模式,包括: cmExce

ODAC(V9.5.15) 学习笔记(四)TMemDataSet (1)

所有的数据集类组件都是从TMemDataSet继承下来的,该组件实现了内存中对数据的管理,其主要的属性.方法和事件如下. 1.数据更新 名称 类型 说明 CachedUpdates Boolean 数据集是否采用缓冲模式 ApplyUpdates 将缓冲区中未提交的数据提交数据库,但不执行数据库的事务操作.此时缓冲区数据仍然存在,UpdateStatus状态处于修改状态,需要调用CommitUpdates来清除缓存中的数据,并将状态还原成非修改状态.ApplyUpdates没有放在Try Exc

ODAC(V9.5.15) 学习笔记(四)TMemDataSet (3)

3.其他 名称 类型 说明 GetBlob TBlob 按照字段名获取当前数据集中某个Blob类型的字段值,并以TBlob对象形式返回 Prepared Boolean 检查Query的SQL是否已准备好执行 Prepare UnPrepare 数据集准备或取消资源准备,在Open或Close后自动调用 SaveToXML 以XML格式保存到文件或数据流中

ODAC(V9.5.15) 学习笔记(四)TMemDataSet (2)

2.索引与过滤 名称 类型 说明 IndexFieldNames string 设置排序字段列表,每个字段之间通过分号分割.每个字段后可以有以下几种排序选项: ASC        升序 DESC      降序 同时还可以有以下选项: CIS         大小写不敏感 CS          大小写敏感 BIN        使用字符的码值排序 如: DataSet1.IndexFieldNames   := 'LastName ASC CIS;   DateDue DESC'; Rang