_son文件代码是一种轻量级的数据交换格式,主要是为了跨平台交流数据用的,仅仅是一种数据形式。而js文件代码是表示类的实例。
_秸咧湎喔ㄏ喑桑涤_son数据格式是从js对象中演变出来的,它是js的一个子集。区别与json可以跨平台传播速度快,而js不能实现传播。
?
首先看一个简单的例子,是我曾做过的一个菜单项的一部分内容:SELECT 收费.序号,收费.id1,学生.专业,学生.年级,学生.层次,学生.形式,学生.学号,学生.姓名,收费.时间,收费.收据编号,收费.所属学期,
收费.缴费方式,收费.收费部门,收费.减免金额,收费.本期实交,收费.备注,学生.班级号,学生.学校 INTO DBF xuesheng.DBF FROM 学生 inner JOIN 收费
ON 学生.id1=收费.id1 ORDER BY 收费.序号
有两个表:
1、学生:主要存储学生的相关信息,有id1、专业、年级、层次、形式、学号、姓名、学号、班级号、学校等字段,id1在学生表中的记录是不重复的。
2、收费:主要存储收费的相关信息,有id1、序号、时间、收据编号、所属学期、缴费方式、收费部门、减免金额、本期实交、备注等字段
上一语句的作用是以id1作为连接学生表和收费表的字段,连接方式是内连接inner,排序依据是收费表的序号,连接结果存入表xuesheng。
再体会一下我做过的另一个菜单项
IF USED('学生')
SELECT 学生
ELSE
USE 学生 IN 0 AGAIN
ENDIF
SELECT 学生.id1,学生.班级号,学生.专业,学生.年级,学生.层次,学生.形式,学生.学号,学生.姓名,标准.所属学期,SUM(标准.学费) AS 学费,SUM(标准.书籍费) AS 书籍费,
SUM(标准.其他) AS 其他,SUM(标准.合计) AS 合计,100000000.00-100000000.00 AS 减免金额,
100000000.00-100000000.00 AS 本期应交,
100000000.00-100000000.00 AS 本期实交,100000000.00-100000000.00 AS 欠交金额
FROM 学生 JOIN 标准 ON 学生.id1=标准.id1
GROUP BY 学生.id1,学生.班级号,学生.专业,学生.年级,学生.层次,学生.形式,学生.学号,学生.姓名,标准.所属学期,标准.学费,
标准.书籍费,标准.其他,标准.合计
UNION
SELECT 学生.id1,学生.班级号,学生.专业,学生.年级,学生.层次,学生.形式,学生.学号,学生.姓名,收费.所属学期,0,0,0,0,SUM(收费.减免金额) AS 减免金额,
100000000.00-100000000.00 AS 本期应交,SUM(收费.本期实交) AS 本期实交,100000000.00-100000000.00 AS 欠交金额
FROM 学生 JOIN 收费 ON 学生.id1=收费.id1
GROUP BY 收费.所属学期,学生.id1,学生.班级号,学生.专业,学生.年级,学生.层次,学生.形式,学生.学号,学生.姓名
INTO DBF xstotal_.DBF
SELECT id1,班级号,专业,年级,层次,形式,学号,姓名,所属学期,SUM(学费) AS 学费,SUM(书籍费) AS 书籍费,SUM(其他) AS 其他,
SUM(合计) AS 合计,SUM(减免金额) AS 减免金额,SUM(本期应交) AS 本期应交,SUM(本期实交) AS 本期实交,
SUM(欠交金额) AS 欠交金额 INTO DBF xstotal.DBF GROUP BY 所属学期,专业,年级,层次,形式,学号,姓名,id1,班级号 FROM xstotal_
ORDER BY 专业,年级,层次,形式,学号,姓名,所属学期
SELECT xstotal
REPLACE ALL 本期应交 WITH 合计-减免金额,欠交金额 WITH 本期应交-本期实交
CLOSE ALL
DO FORM 统计1
menuav=0
你将上述命令复制到一个程序文件如test.prg中,用“工具-美化(...)”就能很清楚看到其中的层次。
son是一种基于JSON并添加一个 受YAML启发的特性:对象与 ---。可选地,分隔符===可以在每个son文件中使用一次来分隔 元数据。为什么son?
虽然json非常适合存储结构化数据,但它本质上是不可能的 将数据的新部分添加到文件中而不先读取它。上的yaml文件 另一方面,由{{CD1}}定界符可自扩展,但具有灵活性。 YAML提供的功能使得文件解析效率低下因此他们不适合 存储大量数据
son通过允许json对象与---连接来填补空白。它 从而将json的速度和效率与顺序扩展性结合起来 山药,见example它进一步增加了从 使用===的实际数据。
son不允许not覆盖数据。为了避免意外数据丢失, metada只能写入新文件,而数据只能附加到文件
谁需要这个?
son源于存储生成的计算数据的需要 一部分一部分地在计算机上。要求是:
可能被人读到
可以存储任意数据结构,包括元数据,
易于计算机编写和分析,
高效地解析以允许大小高达GB的文件(使用YAML解析需要永远的时间)
循序渐进、廉洁,
抗数据丢失。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)