Installshield 12 制作 MSDE2000 SP4 安装包

1、从  http://www.microsoft.com/downloads/details.aspx?familyid=8E2DFC8D-C20E-4446-99A9-B7F0213F8BC5&displaylang=zh-cn 下载 MSDE 2000 SP4,打包备用;

2、在 Installshield 12 Premier  创建一个 InstallScript  项目。要创建这种项目需要现安装 Installshield Installscript Objects,这个部件可以从 http://www.installshield.com 下载;
选择 InstallScript  项目的原因是我们要利用 InstallScript 脚本代码来完成 MSDE 2000 SP4  的安装。设置 InstallScript  项目具体过程没什么别需要说明的,整个过程很比较简单。唯一要注意的是在“Build Installation”这一步骤是选择“CD-ROM”以便于随后我们向这个安装影像中添加 MSDE 2000 SP4 的安装目录;
3、编写 InstallScript 代码。在 Installation Designer 卡片中,单击左边那棵树中的“InstallScript” 结点。在右边的 Setup.Rul 窗格中顶部第一个DropDownList 中选中“After Move Data” ,在第二个DropDownList 中选中“OnFirstUIAfter”,系统自动添加 OnFirstUIAfter() 函数。对各位大侠来说,这些代码简直是小菜一碟。

 

function OnFirstUIAfter()
    STRING szTitle, szMsg1, szMsg2, szOpt1, szOpt2;
    NUMBER bvOpt1, bvOpt2;
    NUMBER bShowUpdateServiceDlg;
    STRING szWaitText;
    STRING szServiceName;
    NUMBER svServiceState;
    STRING szMsde2000, szCmdLine,szStartServiceArgs;
begin
    // 如果安装程序以“维护”模式启动
    if (MAINTENANCE) then
        goto EndProcess;
    endif;

    // 检查系统是否安装了 MSDE 2000 SP4
    szWaitText = "正在检查系统是否安装了 MSDE2000 SP4 …….";
    SdShowMsg( szWaitText, TRUE);   
   
    szServiceName = "MSSQL$ZJJ";
    if(ServiceGetServiceState(szServiceName, svServiceState) < ISERR_SUCCESS) then
        // 没有安装 MSDE,转安装处理
        goto InstallMSDE;   
    endif;
    goto StartMSDE;
   
InstallMSDE:  // 安装数据库服务 
    szWaitText = "正在安装 MSDE2000 SP4。这个过程需要几分钟,请稍等";
    SdShowMsg(szWaitText, TRUE);
   
    szMsde2000 = SRCDIR ^ "MSDE" ^ "setup.exe";
    // 将 MSDE 2000 SP4 安装到系统 Program File 目录下
    szCmdLine = "TARGETDIR=\"" + PROGRAMFILES + "\" /q";
    if(LaunchAppAndWait(szMsde2000, szCmdLine, LAAW_OPTION_WAIT|LAAW_OPTION_MAXIMIZED) < 0 ) then
        MessageBox ("安装 MSDE2000 SP4 失败,请联系系统管理员!", SEVERE);
        goto EndProcess;
    endif;

StartMSDE: // 启动 MSDE2000 服务
    szWaitText = "正在启动 MSDE2000 SP4 …….";
    SdShowMsg( szWaitText, TRUE);   
  
    // 安装了 MSDE 2000, 试着启动服务
    szStartServiceArgs = "";   
    if(svServiceState != SERVICE_RUNNING) then
        if (ServiceStartService (szServiceName, szStartServiceArgs) < ISERR_SUCCESS ) then
            MessageBox ("启动服务" + szServiceName + "出错。", SEVERE);
            goto EndProcess;
        endif;       
    endif;

    // 加载用户数据库
    szWaitText = "正在创建所需数据库.";
    SdShowMsg(szWaitText, TRUE);
    Delay(2);
   
    // 先试着分离先前已经加载的数据库
    szCmdLine = "-E -Q \"exec exec sp_detach_db ExtProject \"";
    if(LaunchAppAndWait("osql.exe ", szCmdLine, LAAW_OPTION_WAIT|LAAW_OPTION_HIDDEN) < 0) then
        MessageBox ("分离原来的数据库失败!请确认系统中已安装 MSDE 2000 SP4 并且服务已启动。\n如问题仍无法解决,请与联系统管理员联系!", SEVERE);
    endif;
   
    // 将数据文件复制到程序安装目录
    CreateDir( TARGETDIR ^ "Data");
    CopyFile( SRCDIR ^ "Data" ^ "ExtProject_Data.MDF", TARGETDIR ^ "Data" ^ "ExtProject_Data.mdf");
    CopyFile( SRCDIR ^ "Data" ^ "ExtProject_Log.LDF", TARGETDIR ^ "Data" ^ "ExtProject_Log.LDF");   
   
    // 附加数据库   
    szCmdLine = "-E -Q \"exec sp_attach_db 'ExtProject', '"+  TARGETDIR ^ "Data" ^ "ExtProject_Data.mdf', '" +  TARGETDIR ^ "Data" ^ "ExtProject_Log.LDF' \"";
    if (LaunchAppAndWait("osql.exe ", szCmdLine, LAAW_OPTION_WAIT|LAAW_OPTION_HIDDEN) < 0) then
          MessageBox ("数据库创建失败!请确认系统中已安装 MSDE 2000 SP4 并且服务已启动。\n如问题仍无法解决,请与联系统管理员联系!", SEVERE);
    endif;
   
    SdShowMsg(szWaitText, FALSE);    
   
EndProcess:   
   
    // 以下代码是系统自动插入的
    //ShowObjWizardPages(NEXT);
   
    szTitle = "";
    szMsg1 = "";
    szMsg2 = "";
    szOpt1 = "";
    szOpt2 = "";
    bvOpt1   = FALSE;
    bvOpt2   = FALSE;   

    // Set this to true if you have the update service enabled, and if you want to check for updates.
    // Note: the ISUS Starter Edition does not support checking for updates programatically.  So,
    // only set this to true if you have at least the ISUS Professional Edition.
    bShowUpdateServiceDlg = FALSE;
   
    //{{IS_SCRIPT_TAG(Dlg_SdDinishEx)   
   
    if ( BATCH_INSTALL ) then
        SdFinishReboot ( szTitle , szMsg1 , SYS_BOOTMACHINE , szMsg2 , 0 );
    else
       
        // If the update service is enabled, show finish dialog that includes
        // update check option.
        if( bShowUpdateServiceDlg && ( ENABLED_ISERVICES & SERVICE_ISUPDATE ) ) then

            if( SdFinishUpdate ( szTitle , szMsg1 , szMsg2 , TRUE ) ) then
                //SdFinishUpdateEx(szTitle,szMsg1,szMsg2,szOpt1,szOpt2,TRUE);
                // Don't check for updates in silent mode.
                if( MODE != SILENTMODE ) then
                    UpdateServiceCheckForUpdates( "", FALSE );
                endif;

            endif;

        else
            SdFinish ( szTitle , szMsg1 , szMsg2 , szOpt1 , szOpt2 , bvOpt1 , bvOpt2 );
        endif;

    endif;
    //}}IS_SCRIPT_TAG(Dlg_SdDinishEx)   
end; 

4、按F7 制作安装影像。生成的安装影像文件位于 [盘符:]\InstallShield Express Projects\[安装项目名称]\Media\cdrom\Disk Images\Disk1
      5、向影像中添加 MSDE 2000 SP4 的安装文件。

   5.1: 新建两个目录:

 [盘符:]\InstallShield Express Projects\[安装项目名称]\Media\cdrom\Disk Images\Disk1\MSDE    用于存放 MSDE 2000 SP4  安装文件;
            [盘符:]\InstallShield Express Projects\[安装项目名称]\Media\cdrom\Disk Images\Disk1\Data   用于存放你要安装的数据库文件;
 
        5.2: 解压 SQL2000.MSDE-KB884525-SP4-x86-CHS.EXE  将解压到 SQL2000MSDE 文件夹中, 然后将SQL2000MSDE\msde\ 中的文件拷贝到 [盘符:]\InstallShield Express Projects\[安装项目名称]\Media\cdrom\Disk Images\Disk1\MSDE中

 5.3 修改 msde\step.ini 文件,修改后的内容如下:

[Options]  
TARGETDIR="C:\Program Files\Microsoft SQL Server\MSSQL\Binn\"   //设置安装路径
DATADIR="C:\Program Files\Microsoft SQL Server\MSSQl\Data\"         //设置安装路径
INSTANCENAME="ZJJ"          //你的服务器实例名 MSSQL$ZJJ
SAPWD="AStrongSAPwd"    //需要一个强密码
SECURITYMODE=SQL         //验证模式为混合模式

注意事项: 此时不能用空密码或弱密码, 但是 在加上 BLANKSAPWD=1后,就可以 SAPWD=""使用空密码了.

大功告成!!!!!!!!

其他网络上的帖子最后这一段是这样写的-------但是我不能安装成功!!!!!上面的方法是我试出来的.但也贴出来供参考:

4、按F7 制作安装影像。生成的安装影像文件位于 [盘符:]\InstallShield Express Projects\[安装项目名称]\Media\cdrom\Disk Images\Disk1
5、向影像中添加 MSDE 2000 SP4 的安装文件。
    5a)请先参照 MSDE 2000 ReadmeSql2k32desksp4.htm 中《4.1 再分发 MSDE 2000 SP4》的说明。
    5b)打开文件夹 [盘符:]\InstallShield Express Projects\[安装项目名称]\Media\cdrom\Disk Images\Disk1, 然后创建两个子文件 MSDE  和 Data 。
            [盘符:]\InstallShield Express Projects\[安装项目名称]\Media\cdrom\Disk Images\Disk1\MSDE    用于存放 MSDE 2000 SP4  安装文件;
            [盘符:]\InstallShield Express Projects\[安装项目名称]\Media\cdrom\Disk Images\Disk1\Data   用于存放你要安装的数据库文件;
 6、说明:MSDE 2000 ReadmeSql2k32desksp4.htm 中《4.1 再分发 MSDE 2000 SP4》中的说明并太确切。实际上,为了让 MSDE 2000 SP4 的Setup.exe 正确运行,还需要将所下载并解压 MSDE 2000 SP4 中 *.dll  和 *.rll 复制到 [盘符:]\InstallShield Express Projects\[安装项目名称]\Media\cdrom\Disk Images\Disk1\MSDE  中。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据库软件SQL2000和SP4补丁集成版本,可应用于数据库开发等应用。Microsoft SQL Server 2000 Service Pack 4 概述 更新信息:Microsoft 在 SP4 的最终内部版本中发现了一个问题,如果用户在运行 SQL Server 时启用了 AWE 支持功能,就会受到该问题的影响。此问题对 ia64 平台没有影响。在 x86 和 x64 系统上,该问题只会影响符合以下条件的用户:已经启用 AWE 并占用了超出 2 GB 的内存(仅适用于 Enterprise、Developer 和 Evaluation 版本);系统的一大半总内存分配给单个 SQL Server 实例。具有此配置的用户应在升级到 SP4 之后获取并应用 Microsoft 知识库的文章 899761 中指定的修补程序。 SP4 是一个累积的 Service Pack,包含以前各 Service Pack 版本中的所有修补程序,其中包括 MS03-031 安全公告。 SP4 包含以下 SQL Server 2000 组件的程序包: 数据库组件(67.1MB)(下载文件:SQL2000-KB884525-SP4-x86.EXE) 更新 SQL Server 2000 的 32 位数据库组件,包括数据库引擎、复制、客户端连接组件和工具。有关其他信息,请参阅ReadmeSql2k32Sp4.htm Analysis Services 组件(44.6 MB)(下载文件:SQL2000.AS-KB884525-SP4-x86.EXE): 更新 SQL Server 2000 的 32 位 Analysis Services 组件。有关其他信息,请参阅 ReadmeSql2k32ASp4.htm。 SQL Server 2000 Desktop Engine (MSDE) 组件(80.2 MB)(下载文件:SQL2000.MSDE-KB884525-SP4-x86.EXE): 对于 SQL Server 2000 的 32 位 MSDE 组件: 安装 MSDE 的新实例 升级 MSDE 的现有实例 更新已使用合并模块的应用程序 有关其他信息,请参阅 ReadmeSql2k32DeskSp4.htm SQL Server 2000 64 位组件(下载文件:SQL2000-KB884525-SP4-ia64.EXE): 更新 SQL Server 2000 的 64 位数据库组件和 64 位 Analysis Services 组件。有关其他信息,请参阅 ReadmeSql2k64Sp4.htm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值