`
- 浏览:
209583 次
- 性别:
- 来自:
北京
-
检测SQL的InstallShield脚本 通用于最新的 12
//全局变量
STRING szSQLServiceName; //数据库服务器名
STRING szSQLServiceName1; //数据库服务器名(缓存)
STRING szSQLServiceFilePath; //数据库服务器执行文件路径
STRING szSQLServiceDataRootPath; //数据库服务器数据库根路径
STRING szSQLServiceFileRootPath; //数据库服务器文件根路径
STRING szStartServiceArgs; //启动参数总和
STRING szSQLServiceRunData0 ; //数据库服务器启动参数1
STRING szSQLServiceRunData1 ; //数据库服务器启动参数2
STRING szSQLServiceRunData2 ; //数据库服务器启动参数3
NUMBER szServiceState; //数据库服务启动状态
//安装开始时检查
function OnBegin()
STRING szMsg;
STRING sKey,sKeyArg,sValue,sData;
STRING szKey;
NUMBER nType, nSize;
NUMBER nResult;
STRING szWaitTxt;
begin
if !MAINTENANCE then
SdShowMsg("正在检查软件运行环境...请稍候",TRUE);
Delay(1);
// 判断系统是否安装Microsoft SQL Server或MSDE
sKey = "Software\Microsoft\Microsoft SQL Server";
szMsg = "Micorsoft SQL Server 或 MSDE没有安装,请先安装Micorsoft SQL Server 或 MSDE.";
RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
nResult = RegDBGetKeyValueEx ( sKey, "InstalledInstances", nType, sData, nSize );
if ( nResult < 0 )then
SdShowMsg("正在安装MSDE2000,请稍等...",TRUE);
Delay(1);
if(LaunchAppAndWait("msde\setup.exe", "",LAAW_OPTION_WAIT|LAAW_OPTION_MAXIMIZED)< 0) then
SdShowMsg("",FALSE);
MessageBox("安装MSDE2000失败,请手动执行安装光盘MSDE目录下的setup.exe安装MSDE2000引擎. 如仍无法解决,请联系系统供应商!",SEVERE);
abort;
endif;
endif;
//获取服务器名称
nResult=RegDBGetKeyValueEx( sKey, "InstalledInstances", nType, szSQLServiceName1, nSize );
if(nResult < 0) then
//MessageBox ("获取数据库服务器名称失败!",INFORMATION);
szSQLServiceName="MSSQL" ;
else
if(szSQLServiceName1="") then
szSQLServiceName="MSSQL";
elseif(szSQLServiceName1!="MSSQLSERVER") then
szSQLServiceName="MSSQL$"+szSQLServiceName1;
else
szSQLServiceName=szSQLServiceName1;
endif;
endif;
//获取数据库文件根路径
if(szSQLServiceName1!="MSSQLSERVER") then
sKey="Software\Microsoft\Microsoft SQL Server\"+szSQLServiceName1+"\Setup";
else
sKey="Software\Microsoft\"+szSQLServiceName1+"\MSSQLServer\Setup";
endif;
RegDBGetKeyValueEx( sKey, "SQLDataRoot", nType, szSQLServiceDataRootPath, nSize ); //数据库根路径
RegDBGetKeyValueEx( sKey, "SQLDataRoot", nType, szSQLServiceFileRootPath, nSize ); //文件根路径
//数据库启动文件路径
szSQLServiceFilePath=szSQLServiceFileRootPath+"\Binn\sqlservr.exe";
//获取数据库服务器启动参数
if(szSQLServiceName1!="MSSQLSERVER") then
sKeyArg="Software\Microsoft\Microsoft SQL Server\"+szSQLServiceName1+"\MSSQLServer\Parameters";
else
sKeyArg="Software\Microsoft\"+szSQLServiceName1+"\MSSQLServer\Parameters";
endif;
RegDBGetKeyValueEx( sKey, "SQLArg0", nType, szSQLServiceRunData0, nSize );
RegDBGetKeyValueEx( sKey, "SQLArg1", nType, szSQLServiceRunData1, nSize );
RegDBGetKeyValueEx( sKey, "SQLArg2", nType, szSQLServiceRunData2, nSize );
szStartServiceArgs=" -c "+ szSQLServiceRunData0 +" "+szSQLServiceRunData1+" "+szSQLServiceRunData2;
//检测数据库服务是否启动
if(ServiceGetServiceState(szSQLServiceName, szServiceState)< ISERR_SUCCESS) then
//加载
ServiceAddService (szSQLServiceName, szSQLServiceName, szSQLServiceName, szSQLServiceFilePath, TRUE,szStartServiceArgs);
endif;
//启动数据库服务
if (ServiceStartService(szSQLServiceName,"")< ISERR_SUCCESS ) then
SdShowMsg("",FALSE);
SetDialogTitle ( DLG_MSG_INFORMATION, "数据库服务启动出错" );
MessageBox("数据库服务"+szSQLServiceName+"启动错误!请手动开启数据库服务后再执行软件安装程序。如仍无法解决,请联系系统供应商!",INFORMATION);
abort;
endif;
endif;
end;
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
Installshield 脚本:CheckRequirements.txt 附加数据库.txt 禁用uac.txt 输入用户名密码.txt 卸载杀死进程.txt IISConfig.rul(配置IIS的脚本) Asp.net Version.txt(获取asp.net的版本这个难找哦) IIS安装.rar...
InstallShield脚本语言的编写参考
InstallShield脚本集锦,借助他人的经验可以少走弯路,加快开发进程。
Installshield 脚本代码:卸载时杀掉进程
Installshield脚本:禁用UAC
INSTALLSHIELD脚本.pdf
InstallShield创建新安装脚本 InstallShield创建新安装脚本
InstallShield 脚本 语法,基础知识介绍。
Installshield 脚本:检查安装环境,若电脑上没安装.net则安装
InstallShield安装脚本样例.InstallShield应用SetupRegistry()完整脚本.Installshield中注册SQL Anywhere 7.0 ODBC的完整脚本
InstallShield脚本语言是类似C语言,利用InstallShield的向导或模板都可以生成基本的脚本程序框架,可以在此基础上按自己的意愿进行修改和添加。
InstallShield教程+脚本API教程+经验,物有所值啊。
InstallShield2008脚本安装制作方法Setup
比如对于在安装过程中连接数据库并执行SQL脚本这样的需求,使用InstallShield应该会简单地多,而Inno却不支持直接操作数据库,并且相关的资料说明少之又少,还不如NSIS丰富,以至于我踏破铁鞋无觅处,最终却在NSIS的...
InstallShieldScript脚本基本语法
InstallShield X对于任何平台,操作系统都是全面一体化的安装制作解决方案,Device InstallShield X 能够让开发者很容易地制作WINDOWS安装程序(MSI),InstallScript(安装程序的脚本语言)或交叉平台 型安装...
InstallShield2010自动化编译批处理命令文件
Installshield6.22安装脚本文件样例 内部资源,全部拿来共享,希望大家能够喜欢,喜欢就多给点分
InstallShield包含300多个内部库函数,用户可在安装脚本中调用它们来创建程序组,操作文件夹,处理目录,监督安装状态,创建对话框,操作文件及其它更多工作。因为InstallShield脚本编译器已经识别这些库函数名,...