一种用ASL语言创建空表的方法

作 者:

作者简介:
张鸣 杨鹏 泸州市审计局

原文出处:
现代审计

内容提要:


期刊代号:V3
分类名称:审计文摘
复印期号:2009 年 08 期

关 键 词:

字号:

      审计脚本语言(Aud it ScriptLanguage,ASL)是AO系统编写审计方法的语言,它基于PASCAL语言并进行了数据库操作、图表输出等功能扩展,审计人员可利用ASL语言将审计思路编写程序存储为审计方法并编译执行。

      笔者在使用ASL语言编写审计方法过程中,遇到了这样一个问题:无法建立一个空表。一开始笔者使用“Createtemptable(‘新表名’,SQL语句)”方式,其中SQL语句为“CreateTable表名(字段字段属性,……);”未获成功,分析其原因可能是Createtemptable函数引用的SQL语句必须为查询语句而不能是其他语句。在金审工程服务网站笔者看到有两种方法,一是使用“Executeupdate(‘CreateTable表名(字段字段属性,……);’)”,经笔者验证在编译时会报错,估计原因是Executeupdate不支持CreateTable语句;二是使用数据分析功能,点“添加表”按钮,选中你创建的临时表,点“确定”按钮,然后在“用户自定义”节点打开你创建的临时表,但这就不再是全过程自动处理,部分审计人员可能难以操作。由于种种原因,网络上ASL语言方面资料也不多,笔者欲通过更多函数来解决也未能实现。

      笔者换了个一个思路,只有Select语句能否达到建立一个空表的效果。如果能,就可以使用Createtemptable来建立新表了。我们知道,在SQL语言中可以使用“Select字段名as别名”….“Into新表名From表名”来建立一张新表,只要新表能与旧表完全无关,我们的目的就基本达到了。

      根据以上思路,结合执行审计方法操作一般是在AO系统打开一个有财务数据的审计项目中,笔者找到了这样一个解决办法如下:

      第一步:利用“字段名as别名”思路生成一个中间表,其中别名应为欲生成最终表中的字段名;

      第二步:利用条件删除语句删除中间表中原有记录;

      第三步:利用查询部分字段语句生成最终表。

      示例ASL语句如下:

      Begin

      Createtemptable(中间表名’,’Select科目编码as新字段1,科目名称as新字段2,……,科目编码From会计科目Where科目编码=”101”’);

      Executeupdate(‘DeleteFrom中间表名Where科目编码;”101”’);

      Createtemptable(‘最终表名’,’Select新字段1,新字段2,……From中间表名’);

      End.

      这样,我们就得到了一个空表,并可以使用Insert、Update等语句利用Executeupdate函数增加、修改纪录,以及利用Oputchart函数进行图表输出等工作。以上方法在WindowsXP+A02008现场审计实施系统中验证通过。

相关文章: