![DELPHI基础教程:开发Delphi对象式数据管理功能(一)[5],第1张 DELPHI基础教程:开发Delphi对象式数据管理功能(一)[5],第1张](/aiimages/DELPHI%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%EF%BC%9A%E5%BC%80%E5%8F%91Delphi%E5%AF%B9%E8%B1%A1%E5%BC%8F%E6%95%B0%E6%8D%AE%E7%AE%A1%E7%90%86%E5%8A%9F%E8%83%BD%EF%BC%88%E4%B8%80%EF%BC%89%5B5%5D.png)
⑵ Write方法
Write方法从内存流内部缓冲池的当前位置开始写入二进制数据 其实现如下
function TMemoryStream Write(const Buffer; Count: Longint) Longint;
var
Pos: Longint;
begin
if (FPosition >= ) and (Count >= ) then
begin
Pos := FPosition + Count;
if Pos > then
begin
if Pos > FSize then
begin
if Pos > FCapacity then
SetCapacity(Pos)
FSize := Pos;
end;
System Move(Buffer Pointer(Longint(FMemory) + FPosition)^ Count)
FPosition := Pos;
Result := Count;
Exit;
end;
end;
Result := ;
end;
Buffer中存储要写入流的二进制数据 如果要写入的数据的字节超出了流的内存池的大小 则调用SetCapacity方法再分配内存 然后用内存复制函数将Buffer中的数据复制到FMemory中 接着移动位置指针 并返回写入数据的字节数 分析这段程序可以知道 FCapacity的值和FSize的值是不同的
⑶ Clear方法
Clear方法消除内存流中的数据 将Memory属性置为nil 并将FSize和FPosition 的值设为 其实现如下
procedure TMemoryStream Clear;
begin
SetCapacity( )
FSize := ;
FPosition := ;
end;
⑷ LoadFromStream和LoadFromFile方法
LoadFromStream方法首先根据传入的Stream的Size属性值重新分配动态内存 然后调用Stream的ReadBuffer方法往FMemory中复制数据 结果Stream的全部内容在内存中有了一份完整拷贝 其实现如下
procedure TMemoryStream LoadFromStream(Stream: TStream)
var
Count: Longint;
begin
Stream Position := ;
Count := Stream Size;
SetSize(Count)
if Count <> then Stream ReadBuffer(FMemory^ Count)
end;
LoadFromFile与LoadFromStream是一对方法 LoadFromFile首先创建了一个TFileStream对象 然后调用LoadFromStream方法 将FileStream文件流中的数据写入MemoryStream中
返回目录 DELPHI基础教程
编辑推荐
Java程序设计培训视频教程
J EE高级框架实战培训视频教程
Visual C++音频/视频技术开发与实战
Oracle索引技术
ORACLE G数据库开发优化指南
Java程序性能优化 让你的Java程序更快 更稳定
C嵌入式编程设计模式
Android游戏开发实践指南
lishixinzhi/Article/program/Delphi/201311/25108
(一)完善管理制度,强化监管力度。数据库系统的安全与企业自身内部的安全机制、内外网络环境、从业人员素质等密切相关。因此,企业应该完善网络系统安全规章制度,防范因制度缺陷带来的风险;企业应该规范 *** 作流程和故障处理流程,减少人为失误与故障,提高故障处理速度,缩短故障处理时间;企业应该通过建立科学合理的责任追究机制,防止出现由于工作态度、工作作风等各种人为因素导致的数据库安全事故。
(二)采取措施,确保数据库数据的安全。保证数据库数据的安全是数据库日常管理与维护工作的首要任务,企业需要采取的安全措施主要有:
(1)网络及 *** 作系统安全。网络系统是数据库应用的外部环境和基础,网络系统安全是数据库安全的第一道屏障。从技术角度讲,网络系统层次的安全防范技术有很多种,大致可以分为防火墙、数字签名与认证、入侵检测等。 *** 作系统是数据库系统的运行平台,能够为数据库系统提供一定程度的安全保护。
(2) *** 作系统的安全控制方法主要是采用隔离控制、访问控制、信息加密和审计跟踪。主要安全技术有 *** 作系统安全策略、安全管理策略等。
(3)加强用户身份验证。用户身份验证是数据库系统的重要防线。利用窗体身份验证数据库程序的漏洞,进而获取存储在数据库中的用户身份验证密码,这是目前对网络数据库攻击最常见的方式。对此,企业信息部门通常使用带有salt值的单向密码哈希值,以避免用户密码在数据库中以明文形式存储,减轻字典攻击带来的威胁。
(4)对重要数据加密。数据加密交换又称密码学,是计算机系统对信息进行保护的一种最可靠的办法。它利用密码技术对信息进行交换,实现信息隐蔽,从而有效保护信息的安全不受侵犯。数据库加密要求加解密的粒度是每个记录的字段数据。采用库外口加密的方式,对密钥的管理较为简单,只需借用文件加密的密钥管理方法,将加密后的数据块纳入数据库,在算法或数据库系统中做些必要的改动就行。这样有利于公共数据字典的使用和维护系统的完整性。
(5)做好数据库备份与恢复。数据备份是备份数据库某个时刻的数据状态,当系统出现意外时用来恢复系统。依靠网络办公的企业,其信息系统很可能随时被破坏而丢失数据。因此,数据库管理系统必须具备把数据库从错误状态恢复到某一已知的正确状态的功能,这就是数据库的恢复技术。
(三)开展数据库健康检查。为及时发现数据库系统存在的问题,在日常管理与维护中,数据管理员要对数据库开展健康检查。检查内容主要包括以下六个方面
(1)系统环境: *** 作系统版本、文件系统容量、内存交换区使用率、系统性能。
(2)数据库环境:数据库和补丁版本、是否有僵尸数据库进程、数据库节点数、是否有其他数据库产品及版本。
(3)日志记录:db2diaglog报错、db2inst1nfy报错、是否有需要处理的DUMP文件。
(4)数据库健康状况:表空间利用率和状态、表空间容器利用率和状态、排序溢出、是否需要收集统计信息、是否需要数据重组、活动日志和日志所在文件系统利用率、死锁发生率、锁升级发生率、锁等待的百分比、编目Cache命中率、包Cache命中率、监视堆利用率、数据库堆利用率、数据库缓冲池命中率。
(5)数据库维护内容:最近一次统计信息收集时间、最近一次表数据重组时间、最近一次绑定包时间、最近一次数据库备份时间。
(6)数据库基本信息记录:数据库内存使用、环境变量。
数据库的管理日常工作
(1) 每天对数据库的运行状态 , 日志文件 , 备份情况 , 数据库的空间使用情况 , 系统资源的使用情况进行检查 , 发现并解决问题。
(2)每周对数据库对象的空间扩展情况 , 数据的增长情况进行监控 , 对数据库做健康检查 , 对数据库对象的状态做检查。
(3) 每月对表和索引等进行 Analyze, 检查表空间碎片 , 寻找数据库性能调整的机会 , 进行数据库性能调整 , 提出下一步空间管理
计划。对 ORACLE 数据库状态进行一次全面检查。
数据库管理的意义重大,关系到企业信息系统的正常运作,仍至整个企业的生死存亡。要做好数据库的日常管理与维护,不仅要求数据库管理员熟悉掌握专业技术知识,还要有足够的细心和高度的责任心。
share_pool_size(共享池)的作用: 1、SQL共享缓冲池 2、该参数是库高速缓存和数据字典的高速缓存。 查看: SQL>SHOW PARAMETERS SHARED_POOL_SIZE 更改: SQL>ALTER SYSTEM SET SHARED_POOL_SIZE='50M' SCOPE=BOTH
以上就是关于DELPHI基础教程:开发Delphi对象式数据管理功能(一)[5]全部的内容,包括:DELPHI基础教程:开发Delphi对象式数据管理功能(一)[5]、信息数据库用户管理规范规定了哪些原则、怎样看当前oracle的share pool的使用状况等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)