开发环境:VS2008+SQL2008
远行环境:XP下单机运行
因为是单机远行,所以要用到数据库的话,给每个客户安装SQL2008过于庞大,所以用了SqlExpress2008.
打包时集成到了系统必备里,用户安装时自动安装SqlExpress2008,由此引发一个问题,因为SqlExpress2008安装后,默认是不开启TCP/IP协议的,这个问题已解决,现在的问题是如何能监听1433端口,总不能让用户手动去配置工具\SQL Server 配置管理器\SQL Server网络配置\SQLExpress的协议\TCP/IP\在IP地址中手动填写1433,然后重启SQL Server服务。
这样第一是麻烦,不是所有客户都有这个能力的,第二,安装完SqlExpress2008后,要附加数据库的,所以有什么办法能用代码实现呢,写在安装类里,这样就不需要人工干涉了。简单的说就是有什么办法能启用1433端口,sqlcmd或者什么其它办法?

解决方案 »

  1.   

    安装默认实例后,只要配置TCP/ip,默认启动。
      

  2.   

    安装参数如下:
    <Command PackageFile="SQLEXPR32_x86_CHS.EXE"
     Arguments='/q /hideconsole /action=Install /features=SQL /instancename=SQLEXPRESS /enableranu=1 /sqlsvcaccount="NT Authority\Network Service" /AddCurrentUserAsSqlAdmin /skiprules=RebootRequiredCheck /SECURITYMODE=SQL /SAPWD=0 /TCPENABLED=1'
     EstimatedInstalledBytes="225000000"
     EstimatedInstallSeconds="420">
    除红色部份都是默认的,我填写了以sa方式登录,密码:0,TCP 协议启用,但这样只是启用了,并没有端口,还是不能执行数据库附加等操作。关键的一步就是端口!!!!
      

  3.   

    @sorry0481 (6F):
    你已经说明是单机作业,确认你的网络连接是正常的吗?显示网络断开吗?