如何自定义sqlserver安装的打包,与自己的程序一起安装

keyou 2002-11-26 09:05:03
如何自定义sqlserver安装的打包,与自己的程序一起安装,使得不安装SQL Server就可以运行自己的程序。以前有类似的帖子但进不去了。
...全文
51 点赞 收藏 22
写回复
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengdali 2003-03-08
SQL Server无人值守安装
随心工作室原创 未经授权,不得转载


第1步: 判断SQL Server是否已经安装过,如果已经安装,则启动服务器(第4步);
SQL Server是否已经安装的判断方法:
HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\Setup下的SQLPath键值
为SQL Server的安装路径,判断安装路径是否存在就可以了。
第2步: SQL Server的安装命令:
如果是桌面版本:
SETUPSQL.EXE k=Dk -s -m -SMS -f1 sql70ins.iss
否则去掉参数:k=Dk
第3步: 建一个循环,通过进程来判断安装程序的结束,一旦结束则启动服务器(第4步);
第4步: 通过进程来判断SQL Server服务是否已经启动,如果已经启动则做第5步;
假设SQL Server的安装路径为c:\mssql7,数据文件路径为d:\mssql7,
则启动SQL Server服务的命令为:
c:\mssql\binn\sqlservr.exe -c -dd:\mssql7\data\master.mdf
-ed:\mssql7\log\errorlog -ld:\mssql7\data\mastlog.ldf
第5步: 导入数据库:
先把数据文件与日志文件拷入d:\mssql7\data下,
假设SQL Server的安装路径为c:\mssql7,数据文件为d:\mssql7\data\test_data.mdf,
日志文件为d:\mssql7\data\test_log.ldf,数据库名为test,则数据库导入的命令为:
sp_attach_db 'test','d:\mssql7\data\test_data.mdf','d:\mssql7\data\test_log.ldf'
当然,如果要自动执行的话,把上面的语句写入文件(假设为c:\temp\attachdb.sql)中,
然后调用运行命令:
c:\mssql\binn\osql.exe -S服务器名 -Usa -P -dMaster -ic:\temp\attachdb.sql
最后,当然您还可以加入一些自己的应用程序的安装,这样的话,您就可以发布您那完整的数据库应用
程序了,所有安装,包括数据库全部自动进行,不需要用户的干预。
如果不能正确安装,查看一下Windows目录下的sqlstp.log文件即可查出原因,对症下药就行了。



以下为文件sql70ins.iss的内容:

[InstallShield Silent]
Version=v5.00.000
File=Response File
[DlgOrder]
Dlg0=SetupMethod-0
Count=11
Dlg1=SdWelcome-0
Dlg2=SdLicense-0
Dlg3=SdRegisterUser-0
Dlg4=CDKEYDialog-0
Dlg5=SetupTypeSQL-0
Dlg6=DlgCpSortUnicode-0
Dlg7=DlgServerNetwork-0
Dlg8=DlgServices-0
Dlg9=SdStartCopy-0
Dlg10=SdFinish-0
[SetupMethod-0]
Component-type=string
Component-count=1
Component-0=Local
Result=1
[SdWelcome-0]
Result=1
[SdLicense-0]
Result=1
[SdRegisterUser-0]
szName=MSEMPLOYEE
szCompany=Microsoft
Result=1
[CDKEYDialog-0]
svCDKey=47324-777-7777777-22042
Result=1
[SetupTypeSQL-0]
;Sql Server程序的安装路径
szDir=C:\MSSQL7
Result=301
;Sql Server数据文件的路径
szDataDir=C:\MSSQL7
[DlgCpSortUnicode-0]
;如果是简体中文字符集SortId设为199,是ISO/1252字符集SortId设为52
;如果是简体中文字符集LCID设为2052,是ISO/1252字符集LCID设为1033
SortId=52
LCID=1033
CompStyle=196609
Result=1
[DlgServerNetwork-0]
NetworkLibs=4095
TCPPort=1433
TCPPrxy=Default
NMPPipeName=\\.\pipe\sql\query
Result=1
[DlgServices-0]
Local-Domain=3855
AutoStart=61455
Result=1
[SdStartCopy-0]
Result=1
[License]
LicenseMode=PERSERVER
LicenseLimit=5
[SdFinish-0]
Result=1
bOpt1=0
bOpt2=0
回复
pengdali 2003-03-08
MSDE:

msde可以很容易的和自己的程序发布。
msde在sql server的msde目录中
主要有两种方法,
简单方法是使用setup.exe,复杂方法是实用\msde\msm下的合并模块,可以将其无缝的集成到自己的msi安装程序里,不过很麻烦。

第一种方法主要是设置setup.ini和setup.exe的命令行参数。
例如:

1 [Options]
2 TARGETDIR="D:\Setup\msde\binn"
3 DATADIR="D:\Setup\msde\data"
4 INSTANCENAME="我的实例名称"
5 SECURITYMODE="SQL"
6 USEDEFAULTSAPWD

注意:
4 安装命名实例可以避免和用户计算机上可能存在的sql server发生冲突
5 验证模式为混合模式,楼上兄弟就不用去改注册表了
6 sa密码为空

使用:F:\MSDE\SETUP /i F:\MSDE\setup\sqlrunXX.msi
就可以删除其他15个 sqlrunXX.msi了
回复
pengdali 2003-03-08
msde 相当于 简版的sql server, 没有 enterprice manager, isqlw, 可以使用 osql,isql 与数据库关联,也可以在有 enterprice manager 的机器上注册然后操作。 msde 可以作为一个小型的数据库,比着access等有很大的优点,支持大部分的sql server 功能。microsoft 建议客户端超过5个上,是用高级的 sql server 版本,这意味着 5个左右的同时在线操作没有什么问题。
在 sql server 的任何一个版本里都有,在 office 2000 以上的版本中也有,也就是意味着你有一套office ,就有使用 他的权利。
回复
xpilot 2003-03-08
微软的网站有一篇介绍如何将MSDE安装程序打包入自定义程序安装过程的文档,不过是E文的,有需要你就去找找看.
回复
Zane 2003-03-06
playguy() ,绝对大大大大猪!
回复
nik_Amis 2003-02-25
yup,,msde
回复
skywalkerdjy 2003-02-25
不要在这里为网站打广告!!
回复
playguy 2003-02-24
可以去这里看一看,有完整的解决方案,绝对实用:
http://www.aslike.net
回复
Chxis 2003-01-08
gz
回复
xiaojianw 2003-01-08
mark
回复
samwcm 2003-01-07
怎么把数据一起绑到msde上呢?
回复
windplume 2002-12-06
装MSDE。。。
回复
llm308 2002-12-06
gz
回复
zxdragon 2002-12-06
呵呵,SQL Server有免费的数据库引擎,如上面的仁兄说的:MSDE
一般开发在SQL Server上制作,调试,安装程序中打入MSDE就可以在客户那里使用。不过要提供数据库初始化的功能...
回复
wyarrant 2002-12-04
首先,如果你用的是vb做的前端就可以在打包时把需要的东西装上,而不需要安装sqlserver客户端,查看它的安装包,里面有MDAC_TYP.EXE可能是你需要的东西
回复
pengdali 2002-12-03
sqlserver肯定要装,微软公司吃啥呀!我说的是初始化用户数据库,老大,呵呵!
回复
milchcow 2002-12-03
不装SQL SERVER就想运行SQL SERVER数据库,难.
回复
jswxcathay596200 2002-12-03
关注
回复
keyou 2002-12-03
To:
pengdali(大力) ( )
xjboy(刀剑客) ( )
通过ADO就可以不要安装SQL Server了么?我用的也是ADO来开发数据库。对于pengdali所说的,我把建表的程序已经固化在我的程序中了。我指的是如何在一台新机器上运行我的程序,只装SQL Server动态连接库之类的就可以。而不用SQL Server整个程序安装上去。
回复
大米团 2002-12-02
ado最方便了。。。。。
回复
发动态
发帖子
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
社区公告
暂无公告