转至繁体中文版     | 网站首页 | 文章中心 | 下载中心 | 图片中心 | 笑话频道 | 教程频道 | 会员中心 | 雁过留声 | 
最新公告:     "MinTao学以致用网"欢迎您的光临,你的支持便是我们的动力,欢迎广大网友和各界人士亲临指导,你们的一个小小的建议便是我们发展的开路石!  [MinTao  2007年9月5日]        
您现在的位置: MinTao学以致用网 >> 文章中心 >> 电子课堂 >> 数据库 >> Sql Server >> 文章正文
专题栏目
更多内容
最新推荐 更多内容
相关文章
在Linux下访问MS SQL Se
使用一个新的名称来恢复
VC连接SQL SERVER数据库
在IE中直接连接SQL数据库
SQL Server 2000 (SP4)
jsp+javabean开发模式下
VS.NET 2005 Beta 2初体
VS.NET 2005 Beta 2初体
自动安装SQL Server数据
【翻译】保存图片到SQL 
更多内容
打包,并自动安装SQL数据库         
打包,并自动安装SQL数据库
作者:landlordh 文章来源:不详 点击数: 更新时间:2007-11-14 13:00:50
入到打包程序文件中,在程序组创建uninst.exe的快捷方式

附:installdb.vb类,要添加引用 system.configuration.install.dll :

Imports System.ComponentModel
Imports System.Configuration.Install

<RunInstaller(True)> Public Class Installer1
    Inherits System.Configuration.Install.Installer

#Region " 组件设计器生成的代码 "

    Public Sub New()
        MyBase.New()

        ''''该调用是组件设计器所必需的。
        InitializeComponent()

        ''''在 InitializeComponent() 调用之后添加任何初始化

    End Sub

    ''''Installer 重写 dispose 以清理组件列表。
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    ''''组件设计器所必需的
    Private components As System.ComponentModel.IContainer

    ''''注意: 以下过程是组件设计器所必需的
    ''''可以使用组件设计器来修改此过程。
    ''''不要使用代码编辑器来修改它。
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        components = New System.ComponentModel.Container
    End Sub

#End Region


    Public Overrides Sub Install(ByVal stateSaver As System.Collections.IDictionary)
        MyBase.Install(stateSaver)
        If Not InstallDB() Then
            ''''失败,反安装
            Me.Uninstall(stateSaver)
            Exit Sub
        End If
        DeleteFile(String.Format("{0}DB.dat", Me.Context.Parameters.Item("targetdir")))
    End Sub

    Public Overrides Sub Uninstall(ByVal stateSaver As System.Collections.IDictionary)
        ''''执行反安装
        MyBase.Uninstall(stateSaver)
        DeleteFile(String.Format("{0}DB.dat", Me.Context.Parameters.Item("targetdir")))
    End Sub

    Private Sub DeleteFile(ByVal paths As String)
        ''''删除指定的文件
        Try
            Dim delFile As New System.IO.FileInfo(paths)
            If delFile.Exists Then
                delFile.Delete()
            End If
        Catch ex As Exception
        End Try
    End Sub

    Private Sub CreateSql(ByVal paths As String)
        Dim File As System.IO.StreamWriter
        Dim db As String = String.Format("{0}", Me.Context.Parameters.Item("dbname"))
        Dim path As String = String.Format("{0}", Me.Context.Parameters.Item("targetdir"))
        Try
            Dim s As New System.Text.StringBuilder
            s.Append("use master" & vbCrLf)
            s.Append("" & vbCrLf)
            s.Append("if not exists (select * from sysdatabases where name=''''" & db & "'''')" & vbCrLf)
            s.Append(" BEGIN" & vbCrLf)
            s.Append("         create database " & db & vbCrLf)
            s.Append(" END" & vbCrLf)
            s.Append("" & vbCrLf)
            s.Append("if exists (select * from sysdevices where name=''''DBdisk'''')" & vbCrLf)
            s.Append(" BEGIN" & vbCrLf)
            s.Append("       EXEC sp_dropdevice ''''DBdisk''''" & vbCrLf)
            s.Append(" END" & vbCrLf)
            s.Append("Else" & vbCrLf)
            s.Append(" BEGIN" & vbCrLf)
            s.Append("       EXEC sp_addumpdevice ''''disk'''',''''DBdisk'''', ''''" & path & "DB.dat''''" & vbCrLf)
            s.Append(" END" & vbCrLf)
            s.Append("" & vbCrLf)
            s.Append("restore database " & db & vbCrLf)
            s.Append("from disk=''''" & path & "DB.dat''''" & vbCrLf)
            s.Append("with replace")
            File = New System.IO.StreamWriter(paths)
            File.Write(s.ToString)
        Catch ex As Exception
        Finally
            File.Close()
        End Try
    End Sub

    Private Function InstallDB() As Boolean
        ''''安装数据库,调用自动批处理。
        Try
            ''''创建临时脚本
            CreateSql(String.Format("{0}Mydb2000tp.sql", Me.Context.Parameters.Item("targetdir")))
     &n

上一页  [1] [2] [3] 下一页

文章录入: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号