Qfile()

阅读(1188) 标签: 远程存储, 存储桶,

描述:

读取远程存储上存储桶中的文件(组)。

语法:  

Qfile(fd:z)

Qfile(fd:cs)

备注:

获取远程存储上存储桶中的文件fd,返回成文件对象。

文件类型包括SPL脚本文件、组表文件、文件组、集文件、txtxls等,返回的文件对象支持exists()name()size()date()read()import()等读取操作,暂不支持写入。

返回的缓冲文件对象存放在【缓存目录/store Type/】位置下;QVS为服务模式时,缓存目录为QVM缓存目录;QVS为调试模式时,缓存目录为QVS缓存目录。如果没有在QVS应用配置文件中配置远程存储信息,直接在集算器ide中使用该函数,则需要在ide里配置【工具 远程存储配置】并连接。

未配置远程存储信息时,将被解析成file()函数。

参数:

fd

远程存储中的文件,书写格式为“存储桶bucketName/文件名objectName

z

fd为文件组时需要设置此参数,z为分表号或分表号组成的序列。

cs

字符集,支持jvm自带的字符集;缺省则为操作系统默认值。

选项:

@c

强行将该文件所有缓存块缓存至缓存目录下;缺省时根据读取数据所在的块位置,只缓存部分缓存块。

返回值:

文件对象

示例:

获取数据文件:

 

A

 

1

=Qfile("qtc01/cities.txt")

打开存储桶qtc01下的文件cities.txt

2

=A1.exists()

判断文件是否存在。

3

=A1.name()

返回文件名,返回结果:[集算器安装目录]\esProc\q-server\webapps\qvs\WEB-INF\home\cache\s3\qtc01\cities.txt

4

=A1.import@t()

将文件数据返回成序表。

获取组表文件:

 

A

 

1

=Qfile("qtc01/emp.ctx")

获取存储桶qtc01下的组表文件对象。

2

=A1.open()

打开组表的基表。

3

=A2.cursor().fetch()

获取基表中的数据。

获取文件组:

 

A

 

1

=Qfile("qtc01/emp.ctx":[1,2])

获取存储桶qtc01下的文件组1.emp.ctx2.emp.ctx

2

=A1.open()

打开文件组。

3

=A2.import()

获取文件组数据。

未配置远程存储:

 

A

 

1

=Qfile("order.ctx")

获取集算器主目录下的组表文件对象。

2

=Qfile("emp.ctx":[1,2])

获取集算器主目录下的文件组。