会计从业资格考试备考辅导会计从业考试辅导:用友U8备份文件浅析Word文档格式.docx
- 文档编号:7502248
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:4
- 大小:10.35KB
会计从业资格考试备考辅导会计从业考试辅导:用友U8备份文件浅析Word文档格式.docx
《会计从业资格考试备考辅导会计从业考试辅导:用友U8备份文件浅析Word文档格式.docx》由会员分享,可在线阅读,更多相关《会计从业资格考试备考辅导会计从业考试辅导:用友U8备份文件浅析Word文档格式.docx(4页珍藏版)》请在冰点文库上搜索。
一点粗浅想法,抛砖引玉,同时也希望能给大家一点启示。
二、分析过程用友
8.51在备份的时候,一般会产生两个文件:
UFDATA.BA_和
UfErpYer.Lst.其中
UfErpYer.Lst比较小,不到1K,而
UFDATA.BA_通常比较大。
由此,我们判断,财务数据应该在
UFDATA.BA_中。
我们用UltraEdit软件打开
UfErpYer.Lst文件,发现它其实就是一个文本文件,保存着备份相关的一些信息,如软件版本、备份日期、帐套年度、文件路径等。
而打开
UFDATA.BA_文件时,我们发现是一堆乱码,甚至找不到常见的一些文件头的信息。
因此我们初步判断它有可能是压缩过的文件。
而且,从常理讲,考虑到磁盘空间的问题,数据文件备份的时候通常也会压缩处理。
尝试用WinRar打开
UFDATA.BA_,成功。
解压后,得到一个文件:
UFDATA.文件没有后缀名,因此我们还是先用UltraEdit打开。
在文件头部,我们看到有“TAPE”、“MicrosoftSQLServer”等字样,因此我们初步判断它跟SQLServer有关。
根据以上思路,我们反过来比较,查看SQLServer数据库的各种文件的头部,看是否有与UFDATA文件头相似的文件。
SQLServer数据库中,与数据相关的文件,我们平时接触比较多的主要有数据文件和备份设备文件。
新建一个空的数据库,用UltraEdit查看它的数据文件的头部,未发现相关字样,而创建一个备份设备后,查看该文件的头部,正好跟UFDATA文件的头部是一样的。
因此我们初步判定UFDATA文件为SQLServer数据库的备份设备文件。
并且,我们知道TAPE是磁带的意思,而SQLServer中跟磁带相关的通常与数据库的备份有关系。
接下来我们就分析UFDATA文件中的内容。
打开SQLServer的企业管理器,新建一个备份设备,并将文件名指定我我们解压后得到的UFDATA文件。
确定后,查看新建立备份设备的内容,发现它其实是一个(或多个)数据库的完全备份。
将它还原后,我们可以看到,这是用友的一个帐套数据库。
对一个本地的数据库,我们就可以根据自己的需要,进行相关的查询和操作了。
到此为止,我们其实已经完成了将一个用友U8.51的备份文件转换成我们可操作数据库的过程。
但如果仅仅如此,那么本文其实是没有什么意义的,因为这个步骤我们可以很容易地利用AO软件来实现。
在实际工作中,我们遇到的往往不是单个的帐套。
由于很多企业有很多独立核算的分公司,并且每个公司每年都要建一套帐,因此,我们面对的往往是十几个、几十个帐套,有时甚至会面对上百个帐套,而AO中又没有提供批量导入的办法,如果一个一个导入的话效率太低。
基于这种情况,本文就利用上述分析的结果,给出一个解决的办法,能让我们批量导入用友的备份数据。
三、解决办法要实现批量导入,必须编写程序,实现上述分析过程中的解压、添加备份设备、还原数据库、抽取数据等步骤。
我们首先对每一个关键步骤给出相应的解决办法,最后再给出一个总体的流程。
文件解压;
利用Win32的API:
ShellExecuteEx,调用WinRar将压缩文件解压到指定的临时文件夹下,并得到解压程序的句柄(前提是已经安装了WinRar软件)。
其中要用到SHELLEXECUTEINFO这个结构,用来指定WinRar的路径以及相应的解压参数。
具体可以查阅Win32API帮助。
添加设备;
利用SQLServer2000的存储过程sp_addumpdevice添加设备文件。
还原数据库;
利用SQLServer2000的命令RestoreDATABASE,从设备中的备份还原数据库。
另外,查看备份文设备中的备份数据库信息可以使用命令:
RESTORE
HEADERONLY.删除备份设备;
可以使用存储过程:
sp_
dropdevice.详细信息可以查阅SQLServer2000的帮助文档。
接下来我们就给出批量导入用友
8.51备份文件的主要流程:
定义SHELLEXECUTEINFO类型的变量:
SI指定SI的相关参数:
动作为“Open”、文件为WinRar的执行文件(指定长文件名)对每个备份文件
UFDATA.BA_,循环处理(循环1)得到文件路径和文件名,以及某些帐套信息(公司、年份等等)指定SI的参数为:
xsFile*.*sTemp(注:
sFile为备份文件的长文件名,sTemp为一个临时文件夹)调用:
ShellExecuteExSI获取SI的状态直到它执行完毕在数据库服务器上执行:
sp_addumpdevicedisk,U8Back,physical_name(注:
U8Back为我们为设备取的名,physical_name为解压后得到的UFDATA文件的长文件名)执行:
RESTOREHEADERONLYFromU8Back,得到设备中的备份列表记录集(注:
一条记录对应于一个备份)对备份列表记录集的每条记录,循环处理(循环2)根据列表记录集中的内容,得到数据库的某些信息(如帐套年份)RestoreDATABASEUF8FromU8BackwithFile=file_number,MoveUfmodelToDataFile,MOVEUfmodel_LOGTOLogFile,replace(注:
file_number为从备份列表记录集中得到的要还原的备份集编号,DataFile与LogFile分别为还原后数据文件与日志文件的长文件名)抽取数据库中相应的数据(注:
如果把多个帐套数据合并到一起,需要根据前面得到的帐套信息将数据进行区分,例如:
将各表加入帐套的年份、公司、地区等字段或是能区分各帐套的一个关键字字段进行区分)结束循环1在数据库服务器上执行:
sp_dropdeviceU8Back,删除设备结束循环2善后工作,如删除临时文件等
四、结束语本文是的一次实际经历的总结。
在一次企业审计中,审计人员拿到了一百六十多个备份文件,并且任务要求将这些帐套中的有关数据进行合并,以便分析。
最后我们以本文所述办法进行处理,代码写完后,用了不到一个晚上的时间,就将所有帐套处理完成。
想法比较粗浅,做法也比较简单,在这里总结一下,也希望大家批评与指点
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 会计 从业 资格考试 备考 辅导 考试 用友 U8 备份文件 浅析 docx