转至繁体中文版     | 网站首页 | 文章中心 | 下载中心 | 图片中心 | 笑话频道 | 教程频道 | 会员中心 | 雁过留声 | 
最新公告:     "MinTao学以致用网"欢迎您的光临,你的支持便是我们的动力,欢迎广大网友和各界人士亲临指导,你们的一个小小的建议便是我们发展的开路石!  [MinTao  2007年9月5日]        
您现在的位置: MinTao学以致用网 >> 文章中心 >> 电子课堂 >> 数据库 >> Sql Server >> 文章正文
专题栏目
更多内容
最新推荐 更多内容
相关文章
通过HTTP访问SQL Server
SQL Server 7.0数据库的
VB应用程序访问SQL Serv
将DBF数据库转换成SQL S
拷贝的SQL Server 7数据
如何使用SQL Server客户
使用SQL Server 2000将现
在Linux下访问MS SQL Se
影响SQL server性能的关
Microsoft SQL Server 7
更多内容
自动安装SQL Server数据库         
自动安装SQL Server数据库
作者:littlehb 文章来源:不详 点击数: 更新时间:2007-11-14 12:54:01

自动安装SQL Server数据库

这段时间,手头的项目接近收尾,以前不太注意的工程打包问题却慢慢凸现出来,这里指的不单单是制作一个可以安装的工程安装包,还有关于缺少运行环境时的数据库实例的安装和数据库数据的安装恢复。这里先把关于MSDE打包进安装程序的心得于大家分享,那么咱们废话少说。

当你的项目基本完成测试,准备发布的时候,制作一个用户使用简便的自动安装包就成为编码完成后的又一个需要解决的问题,工程开发的是否完满,从安装中,用户应该会有个最初的体验。

下面简单介绍一下如何在工程中添加Microsoft SQL Server 2000 Desktop Engine (MSDE)的自动安装合并模块MSM:

1.     首先你需要下载MSDE2000的sp3安装包。可以从下面的链接去下载,URL: http://www.microsoft.com/sql/downloads/2000/sp3.asp

2.     下载完成,你可以安装或者用ZIP解压到本地硬盘,将可以看到:Msi、MSM、Setup这3个目录和setup等文件,其中的MSM文件夹中的东东就是本文要介绍的MSDE2000合并模块。

3.     在你的工程中添加一个安装工程(假设为MySetup1,路径为c:\MySetup1),按照正常的步骤添加工程输出(Project Output),选择输出文件(primary output)和内容文件(content files)两项。

4.     添加合并模块(Merge Moudle),选择浏览,指定到你的MSDE的MSM文件夹,选则MSM和msm\1033下的所有的文件(REPL.MSM、REPL_RES.MSM、 DMO_RES.MSM和DMO.MSM可以不选),打开。

5.     设置安装工程的属性(Properties)中的SearchPath,指定为你的MSM所在路径(这时需要添加两个:path\MSM和path\MSM\1033)。

6.     设置关于安装程序的其他属性咱们暂且不提,这是可以对你的安装工程进行编译了,当编译通过后,你可以在c:\MySetup1\Debug\看到你的打包工程MySetup.msi。

7.     这是工程打包告一段落,下面我们需要修改打好的安装包,使它可以在安装完程序后自动安装MSDE的一个实例(假设实例名为:MyServer)。现在我们需要用到MS的一个工具ORCA,下载地址:http://support.microsoft.com/default.aspx?scid=kb;EN-US;255905安装了orca后就可以利用这个工具对我们的MySetup1.msi进行修改了。

8.     用ORCA打开安装包文件MySetup.msi,找到Property这个table,ADD Row 在Propetry中填入SqlInstanceName,value中填入实例名MyServer。其他的参数请参见:http://support.microsoft.com/?id=810826和http://support.microsoft.com/default.aspx?scid=kb;en-us;281983

9.     所有的参数中有关密码的属性,我没有成功,就是SqlSaPwd,这个参数是和SqlSecurityMode一起使用的,但是我一直没有设置成功,密码总是为空的,不知何故!

10. 选择InstallExecuteSequence这个table,找到SetPropSQLMSDEInstalled这个Action,修改206为102;找到RemoveExistingProducts,修改1525为6601。保存,退出!

这时,在没有SQL环境的机器上运行你的安装包,在程序安装完后,会自动安装MSDE的MyServer实例,并在重起机器后,自动启动Sql Server的实例。


=======================================================================

前一篇中介绍了如何连同Sql Server的桌面版本一同打包到安装程序的简单步骤,这里还想就自己对于:发布程序到已经有SQL环境的计算机时,自动使用SQLOsql来恢复指定的数据库到你的SQL ServerDate中。

首先,在c:\创建一个临时目录,例如c:\TempBD ,拷贝Osql.exe到目录下,拷贝你的数据库备份(TruckDB)到目录下;在目录下分别创建Restore.bat和Restore.txt文件,内容如下:

1.       Restore.bat文件内容:

osql  -E -S -i C:\TempDB\Restore.txt

2.       Restore.txt文件内容:

use master

if exists (select * from sysdevices where name=''''TruckDB'''')

       EXEC sp_dropdevice ''''TruckDB''''

Else

       EXEC sp_addumpdevice ''''disk'''',''''TruckDB'''', ''''C:\Program Files\Microsoft SQL Server\MSSQL\Data\TruckDB.mdf''''

restore database TruckDB

from disk=''''c:\TempDB\TruckDB''''

with replace

   其次,在你的工程中添加一个Installer Class:选中Project主工程,添加Installer Class,名称假定为installer1。选择instller1的代码页,添加下面的代码:

Public Overrides Sub Install(ByVal stateSaver As System.Collections.IDictionary)

''''重写install方法

        

Dim file As System.IO.File

        If file.Exists("C:\Program Files\Microsoft SQL Server\MSSQL\Data\TruckDB_data.mdf") = True Then Exit Sub

        MyBase.Install(stateSaver)

        Dim CheckedDir As System.IO.Directory

        If CheckedDir.Exists("C:\Program Files\Microsoft SQL Server\MSSQL\Data") = False Then

            CheckedDir.CreateDirectory("C:\Program Files\Microsoft SQL Server\MSSQL\Data")

        End If

        Dim FullPath As String

        Dim Asm As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly()

        Dim strConfigLoc As String

        strConfigLoc = Asm.Location

        Dim strTemp As String

        strTemp = strConfigLoc

''''提取安装路径

        strTemp = strTemp.Remove(strTemp.LastIndexOf("\"), Len(strTemp) - strTemp.LastIndexOf("\"))

      

        ''''Copy  DateBase to computer.

        If CreatDIR(strTemp) = False Then

''''失败,反安装

Me.Uninstall(stateSaver)

Exit Sub

        Else

          

        End If

&nbs

[1] [2] 下一页

文章录入:mintao    责任编辑:mintao 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007 MinTao学以致用网(www.mintao.net) Inc All Rights Reserved.
    QQ:543098146有事请Q我! QQ:261561092有事请Q我 QQ:179647303有事请Q我 MSN:min906@126.com
    站长:MinTao 信息产业部ICP备案号:鄂ICP备07500065号

    学以致用是我们学习者的至高境界和不懈追求,[MinTao学以致用网]与大家共同学习,共同进步……
    信息产业部备案
    *鄂ICP备07500065号