[Field 04: Name ……………………..: //leave blank when no more field
[Maximum Number Of Records ..: SFS_NATURAL_RECORD_LIMIT //default value
[Primary Index Name ………………: id //use id as primary key
[Is Index Unique ? [Y]/N ………….: Y
[Index Field 01: Field Name …….: id
[Index Field 01: Ordering ………..: a[scending]
[Index Field 02: Field Name …….:
[Number Of Pages To Allocate …: 4 //allocate 4 pages(16K) for this file
cicssdt: -> quit
参阅:
关于文件组织形式(KSDS、ESDS和RRDS):
关于使用cicssdt创建文件:
(2)info <fileName>
此命令可以列出指定文件的详细信息。和所有其他的SDT命令一样,用户可以在-c选项后使用,也可以在命令提示符中键入。例如:
#cicssdt -s /.:/cics/sfs/OceanLinux64 -c info file1
或者
#cicssdt : -> info file1
用户将会看到如下关于file1的信息:
cicssdt : -> info file1
[Information For File: file1 ]
———————————————————————————–
[File Organisation ] btreeClustered (KSDS)
[Primary Index Name ] id (Unique index)
[Primary Index Field(s) ] id
[Secondary Index Names ] (None defined)
[Number Of Records In File ] 0
[Number Of Fields Per Record] 3
[Field 001: id ][byteArray ][Size: 3]
[Field 002: name ][byteArray ][Size: 10]
[Field 003: age ][byteArray ][Size: 3]
———————————————————————————–
[No OFD information found for this file. ]
———————————————————————————–
(3)delete <fileName>和empty <fileName>
当用户想删除文件时,使用”delete“命令,当需要清除已存在文件中所有记录时,使用”empty“命令。
(4)write <fileName>
通过使用这条命令,用户可以一条一条地向文件中写入数据。以下例子中将向file1中添加3条记录:
#cicssdt: -> write file1
[id ][ byteArray ][ Size:00003]
[3
[name ][ byteArray ][ Size:00010]
[Mike
[age ][ byteArray ][ Size:00003]
[17
[Another ? [Y]/N Y
[id ][ byteArray ][ Size:00003]
[4
[name ][ byteArray ][ Size:00010]
[Anna
[age ][ byteArray ][ Size:00003]
[18
[Another ? [Y]/N Y
[id ][ byteArray ][ Size:00003]
[1
[name ][ byteArray ][ Size:00010]
[Elsa
[age ][ byteArray ][ Size:00003]
[19
[Another ? [Y]/N N
[3] Record(s) Added OK.
此时使用”info“命令来获取file1的信息,将看到”Number Of Records In File“已经变成了3。
(5)read <fileName>
read命令不仅可以从文件中读取记录,而且可以更新和删除正在读取的记录,需要当询问”continuous read?”时选择N。用户可以从文件的开始或者指定的索引处读取数据。”cicssdt“会提供足够的提示来指导用户读取、更新或删除记录。下面是顺序读取和更新的例子:
cicssdt: -> read file1
[Index To Use ……………………..: id
[Read From Beginning ? [Y]/N : Y
[Continuous Read ? Y/[N] …….: Y
[Read #00000001
[id ][1.. ][000003]
[Hex][310000 ]
[name ][Elsa…… ][000010]
[Hex][456C7361000000000000 ]
[age ][19. ][000003]
[Hex][313900 ]
[Read #00000002
[id ][3.. ][000003]
[Hex][330000 ]
[name ][Mike…… ][000010]
[Hex][4D696B65000000000000 ]
[age ][17. ][000003]
[Hex][313700 ]
[Read #00000003
[id ][4.. ][000003]
[Hex][340000 ]
[name ][Anna…… ][000010]
[Hex][416E6E61000000000000 ]
[age ][18. ][000003]
[Hex][313800 ]
[3 Record(s) Read]
//请注意这里的记录顺序并和前面”write“步骤时的顺序进行对比。可以看到,记录被自动按id升序存储。
cicssdt: -> read file1
[Index To Use ……………………..: id
[Read From Beginning ? [Y]/N : N
[Key Value To Search For …….: 3 //read from the record where id=3
[Continuous Read ? Y/[N] …….: N
[Read #00000001
[id ][3.. ][000003]
[Hex][330000 ]
[name ][Mike…… ][000010]
[Hex][4D696B65000000000000 ]
[age ][17. ][000003]
[Hex][313700 ]
[Read Another, Delete or Update ? [Y]/N/D/U U //Y-Yes N-No D-Delete U-Update
[id ][ byteArray ][ Size:00003]
[ //索引不能改变
[name ][ byteArray ][ Size:00010]
[ //如果想保持数据不变,这里保持空白
[age ][ byteArray ][ Size:00003]
[16
[Record 1 Updated.]
[Read #00000002
[id ][4.. ][000003]
[Hex][340000 ]
[name ][Anna…… ][000010]
[Hex][416E6E61000000000000 ]
[age ][18. ][000003]
[Hex][313800 ]
[Read Another, Delete or Update ? [Y]/N/D/U N
[2 Record(s) Read]
参阅:
关于所有SDT命令的细节:
学习了”cicssdt“命令后,用户能够使用测试数据创建一个文件,从而更进一步地学习API。
TXSeries入门系列文章–单元三
数据管理
一部分
文件续
Ye_Guang_Yu | 2017年6月5日 | Visits (801)
2. 文件操作和APIs
我们最终的目标是在应用程序中管理文件,而不是通过键入命令。还记得二单元的”Hello World“程序吗?在源代码的最后有”EXEC CICS SEND“和”EXEC CICS RETURN“命令,这就是CICS API。C编译器不能识别它们,所以必须通过”cicstran“或”cicstcl“命令来翻译它们。本节将聚焦于文件操作所需的APIs,并会涉及其他相关的APIs。
在开始本节的主题前,用户需要做一些准备工作。
(1)准备工作
现在来回顾一下二单元所学的内容。”只有当存在PD记录时TXSeries才可以识别程序”,文件也是一样的。所以用户首先应该在TXSeries中定义所需的文件。
a. 添加FD
对于文件定义,用户应该注意以下语法和选项。
语法
cicsadd -c fd -r <regionName> <FD entry name> RSLKey=public
BaseName=<fileName> IndexName=<fieldName>FileServer=”<serverName>”
选项
以下文章点击率最高
Loading…