第四十三章 持久对象和SQL - 查看存储的数据

文章目录

  • [第四十三章 持久对象和SQL - 查看存储的数据](#第四十三章 持久对象和SQL - 查看存储的数据)
  • 查看存储的数据
  • [`SQL` 生成代码的存储](#SQL 生成代码的存储)

第四十三章 持久对象和SQL - 查看存储的数据

查看存储的数据

本节演示对于任何持久对象,相同的值通过对象访问、SQL 访问和直接Global访问都是可见的。

在我们的 IDE 中,如果查看 Sample.Person 类,我们会看到以下属性定义:

java 复制代码
/// Person's name.
Property Name As %String(POPSPEC = "Name()") [ Required ];

...java

/// Person's age.<br> 
/// This is a calculated field whose value is derived from <property>DOB</property>. 
Property Age As %Integer [ details removed for this example ]; 

/// Person's Date of Birth.
Property DOB As %Date(POPSPEC = "Date()");

在终端中,我们可以打开存储的对象并写入其属性值:

java 复制代码
SAMPLES>set person=##class(Sample.Person).%OpenId(1)
 
SAMPLES>w person.Name
Newton,Dave R.
SAMPLES>w person.Age
21
SAMPLES>w person.DOB
58153
java 复制代码
>>> person=iris.cls("Sample.Person")._OpenId(1)
>>> print(person.Name)
Newton, Dave R.
>>> print(person.Age)
21
>>> print(person.DOB)
58153

请注意,这里我们看到的是 DOB 属性的文字存储值。我们可以调用一个方法来返回该属性的显示值:

java 复制代码
SAMPLES>write person.DOBLogicalToDisplay(person.DOB)
03/20/2000
java 复制代码
>>> print(iris.cls("%Date").LogicalToDisplay(person.DOB))
03/20/2000

在管理门户中,我们可以浏览该类存储的数据,如下所示:

请注意,在本例中,我们看到 DOB 属性的显示值。 (在门户中,还有另一个执行查询的选项,通过该选项,可以控制是否对结果使用逻辑模式或显示模式。)

或者,在终端中,我们可以使用 ObjectScript 写入包含此实例的全局节点的值:

java 复制代码
zwrite ^Sample.PersonD("1")
^Sample.PersonD(1)=$lb("","Newton,Dave R.","384-10-6538",58153,$lb("6977 First Street","Pueblo","AK",63163),
$lb("9984 Second Blvd","Washington","MN",42829),"",$lb("Red"))

由于篇幅原因,最后一个示例包含添加的换行符。

SQL 生成代码的存储

对于 SQL,系统生成可重用的代码来访问数据。

当首次执行 SQL 语句时, IRIS 会优化查询并生成和存储检索数据的代码。它将代码以及优化的查询文本存储在查询缓存中。请注意,此缓存是代码缓存,而不是数据缓存。

稍后,当执行 SQL 语句时, IRIS 会对其进行优化,然后将该查询的文本与查询缓存中的项目进行比较。如果 IRIS 找到与给定查询匹配的存储查询(除了空格等细微差别),它会使用为该查询存储的代码。

可以查看查询缓存并删除其中的任何项目。

相关推荐
WangMing_X9 分钟前
《使用模块化分层来达到企业级项目要求》
开发语言·c#
友莘居士9 分钟前
高效处理 Excel 海量数据入库:编程脚本、CSV 中间件、图形工具优化全攻略
数据库·中间件·excel·csv·海量数据·入库
Han.miracle1 小时前
数据库圣经第二章——简单的my.ini基础配置介绍
数据库
kunge1v51 小时前
学习爬虫第三天:数据提取
前端·爬虫·python·学习
爱学习的小鱼gogo1 小时前
python 矩阵中寻找就接近的目标值 (矩阵-中等)含源码(八)
开发语言·经验分享·python·算法·职场和发展·矩阵
可爱的秋秋啊1 小时前
简单网站编写
开发语言·前端
冬夜戏雪1 小时前
[学习日记][springboot 1-7][leetcode 6道]
java·开发语言·学习
Hello.Reader1 小时前
Flink 状态模式演进(State Schema Evolution)从原理到落地的一站式指南
python·flink·状态模式
红纸2811 小时前
Subword算法之WordPiece、Unigram与SentencePiece
人工智能·python·深度学习·神经网络·算法·机器学习·自然语言处理
QX_hao1 小时前
【Go】--数据类型
开发语言·后端·golang