- 0
- 0
- 约5.68千字
- 约 24页
- 2022-03-23 发布于山西
- 举报
十五. 结构化存储;1 概念;结构化存储把文件系统的概念引入到文件内部。从而在存储结构上支持多应用程序的并发访问。
主要思想:在文件内部构造一个树状层次结构。由存储对象和流对象构成。根节点为根存储,根存储下面可以有子存储或流对象。子存储下面可以再有子存储或流对象。存储对象本身不包含信息,它是子存储和流对象的容器。流对象是叶子节点,是数据的载体。这种结构称为文件内部的文件系统,这样的文件称为复合文档。
Word Excel PowerPoint Visio 等文件都是复合文档。
结构化存储使得多用户??便地并发访问一个文件。各个应用访问属于自己的存储对象。 部分访问。增量访问。;1.3 存储对象和流对象;1.4 结构化存储特性;1.4.2 事务机制
创建、打开存储和流时可以指定事务模式。
只有Commit后,所有的变化才提交到上级。revert可以恢复到上次commit以来的状态。
根存储上commit则会写到磁盘。revert会恢复创建、删除、修改子对象到原先的状态。
事务可以嵌套。
事务的嵌套以嵌套标志为基础而不完全取决与层次结构。(中间层次可能不使用事务)
事务针对写模式而不是读模式
事务的实现是在内存中或临时文件中保存文件拷贝的方式。所以消耗资源。
在直接模式下,revert操作没有意义,commit操作仅仅对根存储相当于flush操作。在此模式下,我们不能假设所有的操作会马上影响到文件系统,修改有可能被缓存
;1.4.3 增量访问
减少保存和打开文件减少操作时间。必要时才访问。
降低了系统对资源的要求。
1.4.4 注意事项:
必须从根存储出发使用Open*或Create*逐个访问才能到达底层。
文件碎片。(调用根存储CopyTo解决);2 复合文档 结构化存储的实现;COM库提供了缺省的基于文件句柄的LockBytes对象。可利用此对象建立复合文件。
COM提供了基于内存的LockBytes对象,可利用此对象建立基于内存的复合文档。
COM允许应用系统实现自定义的LockBytes对象,并建立复合文档。 文件、内存、任何可以抽象称为字节序列的存储设备都可以作为复合文档的载体。不同的载体可以使用统一的存储结构,使用同样的存储对象和流对象。
;复合文档的模型;2.2 创建基于内存的复合文档;使用缺省的基于文件句柄的LockBytes对象创建一个复合文档。
WINOLEAPI StgCreateDocfile(
const OLECHAR FAR* pwcsName, //复合文档路径
DWORD grfMode, //访问模式
DWORD reserved,
IStorage * *ppstgOpen);//返回指针
;2.4.1 打开文件复合文档:
WINOLEAPI StgOpenStorage(
const OLECHAR FAR* pwcsName, //复合文档路径
IStorage FAR *pstgPriority, //原先打开的复合文档
DWORD grfMode,
SNB snbExclude,
DWORD reserved,
IStorage FAR * FAR *ppstgOpen); //返回指针
2.4.2 打开内存复合文档:
WINOLEAPI StgOpenStorageOnILockBytes(
ILockBytes FAR *plkbyt, // 底层LockBytes对象
IStorage FAR *pstgPriority, //原先打开的复合文档
DWORD grfMode,
SNB snbExclude,
DWORD reserved,
IStorage FAR * FAR *ppstgOpen); //返回指针
;3 复合文档的CLSID;4 永久对象;COM定义了四个常用的永久接口。IPersistStorage, IPersistStream, IPersistStreamInit 和IPersistFile(接口定义见p225)
所有的永久接口都包含三个基本的函数IsDirty Load Save,虽然参数各不相同,但含义都一样。Load成员函数使得永久对象从存储介质中装
您可能关注的文档
- 量纲 几种力课件.ppt
- 三体综合症课件.ppt
- 动态数组类课件.ppt
- 学习型组织课件.pptx
- 门窗工程特点.ppt
- 羧酸衍生物课件.ppt
- 月促销大礼鉴赏.pptx
- 扫雪模型课件.ppt
- 空乘级会了解.pptx
- 光的衍射特点.ppt
- GB 14287.2-2026电气火灾监控系统 第2部分:剩余电流式电气火灾监控探测器.pdf
- 《GB 14287.2-2026电气火灾监控系统 第2部分:剩余电流式电气火灾监控探测器》.pdf
- GB 7956.20-2026消防车 第20部分:特种底盘消防车.pdf
- 《GB 7956.20-2026消防车 第20部分:特种底盘消防车》.pdf
- 中国国家标准 GB 7956.20-2026消防车 第20部分:特种底盘消防车.pdf
- 《GB/T 22576.1-2026医学实验室 质量和能力的要求 第1部分:通用要求》.pdf
- 中国国家标准 GB/T 22576.1-2026医学实验室 质量和能力的要求 第1部分:通用要求.pdf
- GB/T 22576.1-2026医学实验室 质量和能力的要求 第1部分:通用要求.pdf
- GB/T 28029.14-2026轨道交通电子设备 列车通信网络(TCN) 第2-8部分:以太网一致性测试.pdf
- 《GB/T 28029.14-2026轨道交通电子设备 列车通信网络(TCN) 第2-8部分:以太网一致性测试》.pdf
最近下载
- 2026年江苏农牧科技职业学院单招《数学》检测卷附参考答案详解(巩固).docx VIP
- 节后复工复产安全培训(六个一最新).pptx VIP
- 南京师范大学中北学院《高等数学(D)》2025 - 2026学年第一学期期末试卷.docx VIP
- 【道法】宪法的内容和作用课件-2025-2026学年统编版道德与法治八年级下册.pptx VIP
- 2024广东统招专升本《计算机基础与程序设计》知识考点汇总.docx VIP
- 2026年江苏农牧科技职业学院单招《数学》通关考试题库及参考答案详解(夺分金卷).docx VIP
- 融合新闻学课件00绪论.pptx VIP
- 空间单相与两相流体回路的模化分析方法及SINDA软件的应用.pdf VIP
- 地铁站台门基础知识.ppt VIP
- 《融合新闻学》03 融合新闻策划.pptx VIP
原创力文档

文档评论(0)