TXSeries入门系列文章5

[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

 
 

参阅:

关于文件组织形式(KSDSESDSRRDS):

http://www-01.ibm.com/support/knowledgecenter/SSAL2T_8.1.0/com.ibm.cics.tx.doc/concepts/c_typs_files_usd_cics.html?lang=en

关于使用cicssdt创建文件:

http://www-01.ibm.com/support/knowledgecenter/SSAL2T_8.1.0/com.ibm.cics.tx.doc/tasks/t_using_cicssdt_to_create_sfs_files.html?lang=en

2info <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. ]

———————————————————————————–

3delete <fileName>empty <fileName>

当用户想删除文件时,使用”delete“命令,当需要清除已存在文件中所有记录时,使用”empty“命令。

4write <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

5read <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命令的细节:

http://www-01.ibm.com/support/knowledgecenter/SSAL2T_8.1.0/com.ibm.cics.tx.doc/reference/r_cicssdt.html?lang=en

学习了”cicssdt“命令后,用户能够使用测试数据创建一个文件,从而更进一步地学习API

 

 

TXSeries入门系列文章单元三
数据管理
一部分
文件续

Ye_Guang_Yu | 201765 | Visits (801) 


 
 

 

inShare 
Tweet

2. 文件操作和APIs

我们最终的目标是在应用程序中管理文件,而不是通过键入命令。还记得二单元的”Hello World“程序吗?在源代码的最后有”EXEC CICS SEND“和”EXEC CICS RETURN“命令,这就是CICS APIC编译器不能识别它们,所以必须通过”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…

     

如果这文章对你有帮助,请扫左上角微信支付-支付宝,给于打赏,以助博客运营