我的程序是连接远程数据库,打包后,当安装到客户的计算机上时,就会提示
"运行是错误'-2147467259(80004005)'
Microsoft[ODBC sql server][named pipes] specified  sql server not found"必须装了sql server客户端之后。才能运行。
但是,客户不想装sql server客户端,我想把sql server客户端一起打包,怎么做?我连接的是远程数据库和本地数据库根本没关系,为什么非要装sql server才能运行?

解决方案 »

  1.   

    可以这样做: 把MSDE和你的安装程序一起刻在光盘上,然后用你的安装程序来引导MSDE(后面必须带上"SECURITYMODE=SQL"参数)的安装,如: c:\setup.exe SECURITYMODE=SQL ,另外用你做的安装程序在注册表的"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run"
    下增加一项名称为"Auto Start MS SQL Server 2000",类型为"REG_SZ",数据为"scm.exe -Action 1 -Silent 1 -Service MSSQLServer -SvcStartType 2"
    ,装完以后重启即可实现你所希望的。
      

  2.   

    1、需要的文件
    sqlrun.cab
    setup.ell
    sqlrun01.msi
    instmsi.exe
    setup.exe
    sqlresld.dll
    (win200 可能需要semnt.dll)
    2、新建一配置文件
    例;a.ini
    [Options]
    TARGETDIR="C:\Program Files\Microsoft SQL Server\MSSQL\Binn\"
    DATADIR="C:\Program Files\Microsoft SQL Server\MSSQl\Data\"
    INSTANCENAME="实例名"
    SAPASSWORD="密码"
    SECURITYMODE=SQL
    说明:
    TARGETDIR 安装目录
    DATADIR 数据库安装目录,在该目录下应该有master,msdb,tempdb,model数据库(8个文件),如果是新环境,可能需要将这几个文件打包到安装包,嗯,安装文件现的大一些,cool一些,嘿嘿(符合微软作风)
    SAPASSWORD设置密码,但这个密码好像没用,安装之后再通过sqldmo改(加密?)
    SECURITYMODE=SQL一定要,否则不能用查询分析器连接
    3、命令
    安装setup.exe /i sqlrun01.msi /settings a.ini /l log.log
    卸载setup.exe /x sqlrun01.msi
    4、备注如果是win2000,要将semnt.dll提前装到TARGETDIR\mssql$‘实例’\binn下
    文件都可以在sqlserver安装盘上找到,如果不清楚可以问我一共可以安装16个实例,相应的用sqlrunXX。msi,
    如果不想装客户端连接工具,请再加上两了dll:DBNMPNTW.DLL;ntwdblib.DLL
    ok,喷血结束,祝大家好运
    或使用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了
      

  3.   

    如果是在局域网内用ADO的话好像可以直接连接吧
      

  4.   

    如果你的客户端是win98,就会经常出现这个问题.win98以后的操作系统就不会有这个问题了.升级操作系统吧.
      

  5.   

    我的做法是在ODBC中用Sql驅動器先連通﹐然后在程式中直接就可能調用了﹐不知道對你適用不,操作系統是Win2000
      

  6.   

    谢谢
      我的程序是让客户下载之后使用,我想把sql server客户端和程序一起打包并且不能太大.应该需要那些文件?