被多国翻唱的经典歌曲:金蝶数据库自动备份及压缩工具AU3源码

来源:百度文库 编辑:九乡新闻网 时间:2024/04/26 00:10:40

金蝶数据库自动备份及压缩工具AU3源码

金蝶账套管理自带数据库定时自动备份工具,但是没有账套压缩打包功能。

本工具AU3源码功能:在数据库服务器运行金蝶客户端,金蝶退出后自动备份数据库并使用WinRAR压缩。
已知BUG:较大的数据库完全备份会出错,错误原因未知,希望有人能完善该代码。

#Region AutoIt3Wrapper 预编译参数(常用参数)
#AutoIt3Wrapper_icon=main.ico ;图标,支持EXE,DLL,ICO
#AutoIt3Wrapper_outfile=金蝶主控台.exe ;输出文件名
#AutoIt3Wrapper_Compression=4 ;压缩等级
#AutoIt3Wrapper_UseUpx=Y ;使用压缩
#AutoIt3Wrapper_Res_Comment=退出金蝶,数据库自动备份压缩 ;注释
#AutoIt3Wrapper_Res_Description=Kingdee K/3 Main ;详细信息
#AutoIt3Wrapper_Res_Fileversion=1.0.0.0 ;版本
#AutoIt3Wrapper_Res_LegalCopyright=仙童工作室 ;版权
#AutoIt3Wrapper_Run_Obfuscator=N ;代码加密
#AutoIt3Wrapper_Run_AU3Check=Y ;语法检查
#EndRegion AutoIt3Wrapper 预编译参数设置完成
#cs __________________________________

Au3 版本:
脚本作者:仙童
Email:admin@thtznet.com
MSN:thtznet@live.com
脚本版本:1.0.0.0
脚本功能:退出金蝶,数据库自动备份压缩

#ce _______________脚本开始_______________
If FileExists ("opt.ini") Then
;-----------------声明全局变量-----------------
$IconHide = IniRead("opt.ini", "system", "iconhide", "N")
$blockinput = IniRead("opt.ini", "system", "blockinput", "Y")
$shutdown = IniRead("opt.ini", "system", "shutdown", "N")
$isrunclient = IniRead("opt.ini", "K/3", "isrunclient", "Y")
$InstallDir = IniRead("opt.ini", "K/3", "InstallDir", @ProgramFilesDir&"\Kingdee\K3ERP\K3Express\")
$issql = IniRead("opt.ini", "mssql", "issql", "Y")
$uid = IniRead("opt.ini", "mssql", "uid", "sa")
$pwd = IniRead("opt.ini", "mssql", "pwd", "")
$ais = IniRead("opt.ini", "mssql", "ais", "")
$noinit = IniRead("opt.ini", "mssql", "noinit", "Y")
$sqldisk = IniRead("opt.ini", "mssql", "sqldisk", @HomeDrive&"\")
$bakname = IniRead("opt.ini", "mssql", "bakname", "Kingdee.bak")
$israr = IniRead("opt.ini", "winrar", "israr", "Y")
$rardisk = IniRead("opt.ini", "winrar", "rardisk", @HomeDrive&"\")
$rarname = IniRead("opt.ini", "winrar", "rarname", "Y")
$date = IniRead("opt.ini", "winrar", "date", "YYMMDD")
$backdel = IniRead("opt.ini", "winrar", "backdel", "Y")
$password = IniRead("opt.ini", "winrar", "password", "N")
;----------------是否隐藏图标----------------
If $IconHide="Y" Then
Opt("TrayIconHide", 1)
EndIf
;----------------运行金蝶客户端--------------
If $isrunclient="Y" Then
If FileExists ($InstallDir&"kdmain.exe") Then
TrayTip("温馨提示:", "当前正在运行金蝶主控台,请稍后...", 10, 1)
RunWait($InstallDir & "kdmain.exe", $InstallDir, Default)
Else
MsgBox(16, "路径错误", "没有找到金蝶主控台,请确认配置文件是否正确!", 10)
Exit
EndIf
Opt("TrayIconHide", 1)
EndIf
;-----------------备份数据库开始--------------
If $issql="Y" Then
If ProcessExists("sqlservr.exe") Then
If $blockinput="Y" Then
BlockInput(1)
EndIf
Opt("TrayIconHide", 0)
TrayTip("温馨提示:", "当前正在备份金蝶K/3数据库,请稍后...", 100, 1)
$connection = ObjCreate( "ADODB.Connection" )
$DSN = "DRIVER={SQL Server};SERVER=;DATABASE="&$ais&";UID="&$uid&";PWD="&$pwd&";"
$connection.Open($DSN)
$recordset = ObjCreate( "ADODB.RecordSet" )
Select
Case $noinit="Y"
$bakname = "F"&$bakname
$recordset.Open( "BACKUP DATABASE ["&$ais&"] TO DISK = '"&$sqldisk&$bakname&"' WITH NOFORMAT", $connection )
Case $noinit="N"
$bakname = "D"&$bakname
$recordset.Open( "BACKUP DATABASE ["&$ais&"] TO DISK ='"&$sqldisk&$bakname&"' WITH DIFFERENTIAL,NOFORMAT",$connection )
EndSelect
$connection.close
;--------------压缩数据库开始--------------
If $israr="Y" Then
TrayTip("温馨提示:", "当前正在压缩金蝶K/3数据库,请稍后...", 100, 1)
Select
Case $backdel="Y"
If $password="N" Then
RunWait(@ComSpec & " /C " & "plugin.dll a -df -k-ag"&$date&"-NN "&$rardisk&$rarname&""&$sqldisk&$bakname, @ScriptDir , @SW_HIDE)
Else
RunWait(@ComSpec & " /C " & "plugin.dll a -df-p"&$password&" "&"-k -ag"&$date&"-NN"&$rardisk&$rarname&" "&$sqldisk&$bakname,@ScriptDir , @SW_HIDE)
endIf
Case $backdel="N"
If $password="N" Then
RunWait(@ComSpec & " /C " & "plugin.dll a -k-ag"&$date&"-NN "&$rardisk&$rarname&""&$sqldisk&$bakname, @ScriptDir , @SW_HIDE)
Else
RunWait(@ComSpec & " /C " & "plugin.dll a-p"&$password&" "&"-k -ag"&$date&"-NN"&$rardisk&$rarname&" "&$sqldisk&$bakname,@ScriptDir , @SW_HIDE)
endIf
EndSelect
BlockInput(0)
TrayTip("温馨提示:", "已完成数据库备份压缩,可以安全关机!", 10, 1)
MsgBox(4096, "完成", "数据库备份压缩已完成!",5)
Else
TrayTip("温馨提示:", "已完成数据库备份,可以安全关机!", 10, 1)
MsgBox(4096, "完成", "数据库备份已完成!",5)
EndIf
Else
MsgBox(16, "数据库错误", "数据库服务没有启动!",10)
Exit
EndIf
;--------------压缩数据库结束--------------
EndIf
;--------------备份完成自动关机--------------
If $shutdown="Y" Then
Shutdown(1)
EndIf
Else
MsgBox(16, "配置文件错误", "请确认配置文件是否存在!",5)
EndIf
Exit