检测SQL的InstallShield脚本 通用于最新的 12

来源:互联网 发布:易知投资 怎么样 编辑:程序博客网 时间:2024/05/17 20:27
 
//全局变量
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;
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 公公现在就想要白关婷中文字幕 丈夫上司侵犯系列在线 义父犯美媳嫁樱花叶菜在线播放 儿子的妻子在线中文字幕云播 老公去世公公每天晚上抱着我睡 被水电工掠夺的妻子在线播放b 佐佐木明希大嫂中文字幕全集 善良的小妻子字幕 公公在我洗碗时在厨房要了我 大嫂被肉翻了天佐佐木明希1 教师蕾丝短裙中文字幕 瓜棚里和大嫂乱禽 强睡大嫂中文字 免费 佐佐木明希 房东中文字幕 与父亲干柴烈火 中文字幕丈夫不在 9大嫂被禽翻中文字幕 侵犯你的贞洁 中文字幕 年轻的妻子在线观中文字幕 大嫂被翻天了佐佐木b希中文7 美丽的大嫂中文字幕影迅雷下载 邻居的妻子中文字幕下载 神马电影院电影中文 神马电影院理论中文 女儿的朋友5中文神马电影院 97手机2019电影院专用版中文 厨房里进入朋友的老婆 中文版电影院 神马电影院 中文 儿子的妻子中文字幕 下载 樱桃中文版电影院 大富豪电影院韩国中文 老婆的闺蜜们喝醉了在家 中文潮人影院您手中的电影院 朋友不在晚上去他家干 趁兄弟喝醉上他女朋友在线播放 神马电影院午伦中文 朋友喝醉上其妻 我朋友的妻子韩语中文2018 在朋友家趁朋友喝醉上他老婆 日本朋友的妻子和母亲中文版