mgƽ̨Դ??
ame}/*这里才是真正的在做Cimload*/
end.
output close.
input close.
......
......
/*以下为第二部分功能*/
input from value(work_o_file) no-echo.
repeat:
linefield = ""./*linefield是字符类型的数组*/
set linefield with width .
if linefield[1] = "**" or
linefield[1] = "ORACLE" or
linefield[1] = (getTermLabel("WARNING",) + ":") or
linefield[1] = (getTermLabel("ERROR",8) + ":")
then do:
/*中间是错误记录的代码*/
end.
end.
process_all这个过程,就是平台执行Cimload的核心代码(其实,还有个过程process_by_screen,源码android俄罗斯游戏源码功能和process_all差不多,平台差异好像是源码process_by_screen直接从Cimload文件中读数据执行,不经过bdl_mstr、平台bdld_det这2个表的源码处理吧,不过其具体代码懒得研究了,平台只是源码猜测而已,呵呵),平台极顶极底源码她内部大致分为2个部分,源码第一部分执行Cimload,平台第二部分对前面生成的临时文件作分析,判断错误情况。
第一部分,Cimload功能分析:
<a 首先,发卡网授权源码work_i_file存的是要执行的Cimload数据,其格式实际上就是我们导入的Cimload原始资料,但去掉了@@batchload和@@end这两行,而且,只包含一条数据(也就是..1中生成的一个Group ID对应的数据,所有数据是封闭区域自动源码通过循环调用这个过程来导入的);
<b 然后,设置batchrun这个全局变量,其功能应该是告诉系统环境现在是在批处理模式下运行吧;
<c 通过调用{ gprun.i execname},就可以把数据写到系统中了,其实这句话实际上就是一个run命令,execname实际上就是@@batchload后面的程序名(从这里看,Cimload功能应该是rsync源码测试 vc被系统给集成了,像update、prompt-for这类函数可能会根据batchrun的设置而自动选择是显示一个界面让用户输入,还是从当前的输入流中读取数据吧),注意,这条语句被包含在一个do语句中,do语句会捕捉在运行过程中产生的所有stop消息,换句话说,也就是如果我们在写程序时发现录入的数据有错误,则可以调用stop命令,这样,就可以停止Cimload的运行了;
<d 对于运行过程中生成的所有消息,都会被写入到work_o_file所对应的文件中,而这个文件,则是第二部分功能的主要数据源;
第二部分,Cimload错误分析:
这部分比较简单,没什么可说的,只要记住,如果想生成错误消息,只要在要输出的消息前面加上“WARNING: ”或“ERROR: ”就可以了,注意最后的空格不能省。
2024-12-23 23:47
2024-12-23 23:36
2024-12-23 23:21
2024-12-23 22:20
2024-12-23 22:01