我已经开发了一个带有sql server后端的小型应用程序,并且我还使用indigo rose setup factory 8.0为该应用程序制作了一个安装程序。我需要的是在安装应用程序期间自动创建具有特定用户帐户的数据库后端。
在安装程序要求用户安装SQL Server或SQL Express作为先决条件之前,在安装数据库时,软件的安装将继续。我试着使用sql脚本,但在安装软件上安装之前我不知道怎么做。我虽然也将数据库创建程序嵌入到主应用程序中,并且它将在安装完成后根据用户需要执行,但我从未尝试过它是否工作。
如果需要的话,我用c和sql server 2005后端开发了这个系统。
所以你能给我一些答案来解决这个问题吗?
谢谢你
最佳答案
最简单的方法是让安装程序调用sqlcmd.exe来运行SQL脚本。要调用它,您需要知道sql实例的数据源(位置)。你需要从用户那里得到。例如,machinename、machinename\instancename或通常的sqlexpress是machinename\sqlexpress。
http://msdn.microsoft.com/en-us/library/ms165702.aspx
您也可以侧步pre-req并为您的客户安装sqlexpress。有一个命令行要安装它:
http://msdn.microsoft.com/en-us/library/ms144259.aspx
另一个没有sql依赖关系的选项是编写自己的自定义操作(命令行/api)、在脚本中的go语句之间进行解析并使用ado.net执行。
安装程序之外的另一个选项是分离安装程序和配置。安装程序只设置位,数据库在运行时通过产品运行时的配置阶段创建。这有很多好处,包括能够在安装阶段之后和配置阶段之前更新位(使用补丁或自动更新)。您还可以提供更好的交互体验,并在运行时处理问题-使用安装程序,您的选择是失败安装并回滚,这是一个糟糕的体验。
希望能有所帮助。