Installshield Create Database

  • December 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Installshield Create Database as PDF for free.

More details

  • Words: 284
  • Pages: 7
Installshield11.5 创建 SQLserver 数据库 目的:仅介绍如何通过 IS 来创建数据库,是自己摸索 IS 的一点心得,并不推荐在实 际应用中使用这种方法。 限制:仅描述了在 IS 环境下,通过 SQL 脚本来建立数据库,没有包括其他建库手段, 比如说恢复。 重点: 介绍了通过 IS 如何联接数据库服务 介绍了如何在 IS 中加入脚本并执行 介绍了如何在安装包运行过程中替换脚本中的特定字符,来实现动态决定数据库的创 建路径 包含了部分脚本的使用说明 要求:基本掌握 IS,基本掌握 SQLserver。 说明:本人水平有限,在本文中为了说清楚问题,不保证所描述的内容是科学的,只 保证结果是正确的。

1 数据库简介 通常一个简单的 C/S 程序在发布时,要求在服务端将数据库一并创建到目标机器的 SQL 服务中。这时候,我们应该得到如下几个的建库脚本文件,或者是包含如下全部内 容的的脚本文件:

1.1 创建一个空数据库的脚本。 --创建数据库 IS_CreateDatabase IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'IS_CreateDatabase') DROP DATABASE [IS_CreateDatabase] GO CREATE DATABASE [IS_CreateDatabase]

ON (NAME = N'Cactus_Data',

FILENAME = N'C:\IS_CreateDatabase.mdf' , SIZE = 102, FILEGROWTH = 10%) LOG

ON

(NAME

=

N'Cactus_Log',

FILENAME

=

N'C:\IS_CreateDatabase_log.ldf' , SIZE = 6, FILEGROWTH = 5%) GO --结束

脚本说明:一个数据库实际上在本地硬盘对应两个物理文件,数据文件“.mdf”和日 志文件“.log”。在这个建库脚本中,这两个文件默认被创建在 C 盘根目录,我们在后面

的制作安装包中,会讲解如何在运行时更改这个路径

1.2 在这个数据库中建表,建视图,建存储过程的脚本。 --创建两个表 USE [IS_CreateDatabase] GO CREATE TABLE [dbo].[IS_TESTTABLE] ( [id] [int] IDENTITY (1, 1) NOT NULL , [name] [varchar] (100) , [old]

[int] ,

[memo] [varchar] (100) ) ON [PRIMARY] GO --在这里可添加建视图脚本,建存储过程脚本 --建表结束

1.3 在这个数据库中插入程序运行的基本数据,也就是初始化数据。 --初始化数据 USE [IS_CreateDatabase] GO INSERT INTO IS_TESTTABLE([name],old,memo) VALUES('IS 使用者',30,'SQL 建库测试') GO --初始化结束

2 开始 IS 历程 这里不对每一步骤进行详细说明了,只在和 SQL 有关的地方进行解释,不明白的地 方请参考论坛中的《IS 入门指南》

2.1 建立新工程 这里依然使用 InstallScript llScript MSI Project 工程类型,是出于本人的习惯,具体也解释不

清楚,感觉这个工程类型功能比较全。

2.2 进入向导

继续,直到出现下面的画面,稍作修改:

修改默认的安装路径。继续………..

选择 CD-RO M,然后选择 Build Installstions,编程生成安装程序的主体结构。 进入到 IS 主界面,选择 SQL Scripts,右键点击界面中的 SQL Scripts,建立一个新联接。 这个联接是用来联接要创建数据库的数据库服务器,在建立一个新联接后,开始设置 联接时默认的参数:服务器名,我们默认设置为“(local) ” ,身份认证我们选择 SQL 服务 验证,用户名默认为“SA”即可。

在新创建的联接上右键,选择 Insert Script files,来导入我们先前做好的建库脚本。 导入完成后,得到如图结果。

数据库设置基本完成。这时候,一个通过 IS 来创建数据库的安装包基本上就就绪了,

你完全可以进行编译后执行。大家可以去试一下。

2.3 这个安装包存在的最大问题: 数据库文件被创建在了 C 盘根目录,也就是我们在安装时无法指定数据库文件的安 装目录。这个问题的解决,也是这个教程中唯一的亮点,就是如何更改数据库建库脚本中 的固定目录,允许用户在安装过程中,选择或输入安装路径。

2.4 更改安装路径 首先要明白一点:IS 本身不会创建数据库,IS 只是提供了安装时可以执行 SQL 脚本 的一种环境,在这个环境中,你可以用 SQL 脚本来实现数据库的一些操作。所以,基于 这么一个认识,我们要想在建库时改变建库文件的创建路径,唯一可以做的就是在 IS 执 行 SQL 脚本前,替换掉 SQL 脚本中的原路径字符“C:\”,换成我们自己输入的路径字符, 比如说“D:\SQLDATA”等。而 IS 正好提供了我们这样的功能。 我们选择一个 SQL 脚本项,看到右侧窗口上有一项叫“Text Replacement”。

在这里,我们可以完成对这个 sql 脚本中的指定的字符串替换成另外一个字符串。这种替 换是在安装时进行的。

比如,我们点击界面中的 ADD,弹出查找/替换对话框,在查找中我们输入 C:\,替 换中我们输入 D:\SQLDATA,那么在安装时,在 CreateDatabase.sql 脚本中所有的字符串

C:\都会别替换成 D:\SQLDATA。 但是,这还并不是我们需要的,因为,数据库要安装在哪个目录,是在安装时才知道 的,比如 INSTALLDIR 这个变量是在安装时才知道,所以,我们可以在替换的位置上输 入[INSTALLDIR]。这样,在安装时,我们选择了安装的目录,执行建库语句时,“C:\” 便被替换成了程序的安装路径,达到指定路径的目的。 再进一步:用 INSTALLDIR 来替换数据库的安装路径有时候不合适,比如,假设我 们这个安装包中包括了程序文件的安装和数据库的创建,而安装要求程序的安装路径和数 据库库文件的生成路径要完全不同,这时候,我们就无法用 INSTALLDIR 来替换建库脚 本中“C:\”,必须要使用自定义的变量来获取用户指定的路径,然后替换建库脚本中的 “C:\”。 用变量获取用户指定的路径,这个我们应该都没有问题,这里重点解释一下如何将这 个获取的路径传递到建库脚本中并进行替换。 假设,我们获取用户指定的路径变量为 userDir(使用 AskPath 函数来让用户安装时 给这个变量赋值――选择路径)。 我们在 Property Manager 中,新建一个项,记住要全部大写(我不知道怎么翻译好, 就叫 IS 的特征变量吧),随便给他个默认值。

这样,我们在 SQL 的替换界面中就能看到这个 IS 的特征变量了。

接下来,我们自然想到就是将 userDir 的值赋给 DBPATH 就万事大吉了。哈哈,用这 个函数吧:MsiSetProperty(ISMSI_HANDLE, "DBPATH",userDir);具体用法看 IS 的帮助 吧 OK,收工!

Related Documents

Create Database Steps
May 2020 10
Create
April 2020 25
Database
November 2019 73