当然,还有user和login,以及缺省的password...

解决方案 »

  1.   

    有2种办法比较好:
    1. 生成建立database、table、view、trigger、job、stored-proc、数据初始化、以及用户建立授权的 Scripting SQL, 保存(可加密)在一个文件中. 用客户端开发工具开发一个用于执行这个脚本的程序. 发布这个程序作为安装程序. 当然, 用户需要先安装SQL Server.2. 备份数据库文件,由用户在SQL Server恢复. 再进行适当的配置(可让用户执行一个存储过程)。
      

  2.   


    在数据库管理器中,所有这些都可以export到一个sql文件中,安装时在server上执行一下此sql文件即可。
      

  3.   

    我比较不想让客户进到SQL Server中去做什么配置,
    所以我觉得nononono的第一个方法不错,但还有几个问题想请教1/Create DataBase不能导出Script吧,不过小问题,实在不行硬写也是一样
    2/用客户端开发工具开发这个程序好象有些难度...那是一个大的文本文件,我如何能够
    开发出这样的应用?至少我觉得Ado不行...
      

  4.   

    1. 当然需要有自己写的部分. 呵呵
    2. 客户端开发工具可以是PB/CB/Delphi/其它. 当然应该与你这个系统的客户端程序的开发工具是相同的。至于使用ADO/BDE/其它, 也应该与系统的客户端程序一致. 在用户执行这个安装程序时, 需要输入Server name、sa的password等内容, 安装程序在得到这些参数后, 同时设置你这个系统的客户端程序相应的参数. 然后, 从脚本文件中读出SQL脚本按步执行(脚本的执行也是需要分步进行的).
      

  5.   

    数据初始化:Insert语句也包含在脚本中。
      

  6.   

    有一个问题...就...是....比如一个很长很长的存储过程,这个存储过程的创建当然是一个批

    Create Procedure Myproc
    as
    ....
    go
    该过程写了几千行之多。但是我若要在客户端编程生成这样的存储过程,
    难道我要把Adodb.Command(VB)或是AdoCmd(Delphi)的CmdText中把这几千行都放进去?
    放...得...进...去....吗?@#^@^%#!@^!#*&@^#(*&@^$%#!^@(!*&#@^#
      

  7.   

    老大,我确实是想解决问题,不是抬杠。
    数据导入不是很困难,当然,问题是当我们想把这些事情都封在客户端的一个程序中,
    执行后为我们做这些事,而不是跑到Enterprise Manager中,就有一些难度了。而且我觉得,服务器安装这样的问题应该很具有普遍性的阿。
    天主在上,我绝不夸张,你不觉得写一个存储过程几千行很正常吗?
      

  8.   

    一个存储过程几千行正常. 我就有一个存储过程9千行.刚才用CB的ADOCommand控件试验, 只能放进2千多行. 估计是控件的问题.我也需要彻底解决这个问题. 呵呵
      

  9.   

    用ado应该可以,速度也可以忍受。
    用adorecordset.save生成.adtg文件,然后再用vb写一个程序,从这些有数据的文件中读取数据然后再addnew到数据库中。这些.adtg文件和vb程序可以随服务器端打包程序安装到相应目录,最后由安装程序安装完毕后自动执行。安装程序用installshield写就可以。
      

  10.   

    nononono:
    刚才我也用了Delphi6的ADOCommand试了一下。
    如果不太长的存储过程,好象是可以的。
    ADOCommand.CommandText的属性是WideString,根据Delphi的HelpWideString 2^30 characters 4 bytes to 2GB但不知在编程时动态加的时候怎么做。总之这是一个方法么!:)
      

  11.   

    To Mr.Kradwang,Adorecordset只能存数据表吧,而且,索引,视图一类的东西你如何解决?
      

  12.   

    4no兄的2千多行存储过程我倒是很感兴趣,是干什么的?
    我有个更好的办法: 程序将脚本加密后与安装结合(至于怎么结合,呵呵门道很多),在客户运行时解密并生成临时文件使用osql -itempsqlfile -Ppwd -Usa -Sserver操作系统命令执行.而tempsqlfile是没有行数限制的哟?!
      

  13.   

    说到存储过程,我这儿也有差不多这么长的,是用来统计一个月的考勤记录的guo的方法看来非常不错么~
      

  14.   

    guo, 我上面说我有9千行的呢. 呵呵
    这个9千行的是我这里开发的MRP分解计算的主要部分. 本来是可以拆分的, 我嫌拆分后查看、修改起来反而不方便,DB中的存储过程也太多,我嫌乱。就把重要的、关系密切的部分留在这里了,所以很长。
      

  15.   

    想跟4no兄聊聊,可以吗?
    QQ有吗?
      

  16.   

    guo(正在消化Oracle), 我睡的早了, 才看到. 今晚聊聊如何?
      

  17.   

    你有这么长的存储过程,那我还是建议你用备份文件比较方便。在服务器端调用存储过程恢复。或者用.mdf .ldf文件连接数据库。这些文件随打包程序安装。不知是否可以。4no兄和guo大侠指教
      

  18.   

    哈哈,笑死人了
    既然sqlserver就在机器上,利用 mssql7\binn\osql.exe -Usa -i setup.sql -n 就可以执行无论多长的安装脚本(当然脚本要正确),在利用shell函数直接调用就行,这样甚至做到了安装脚本和安装程序分离的效果。
    哈哈...............
      

  19.   

    mssqlserver(mssqlserver)的方法与在查询分析器中执行脚本的效果差不多. 而且还是要求在数据库服务器上. 难道你没有想到要在其它机器上进行安装?
    ylm163net(文秀), 需要我解释那么存储过程那么长的原因么? 想知道么? 想知道你就跟我说嘛, 你不说我怎么知道? ...呵呵
      

  20.   

    各位也太
    写一个在服务器上运行的程序,让用户输入安装SQL SERVER的计算机名称、登录SQL用户名称、密码、需要创建的数据库名称、需要保存数据库的路径,其它(如大小等)可以取默认值,连接到master数据库后,你想做什么就做什么吧(如创建数据库、之后建立表等等)
      

  21.   

    哈哈哈哈...............
    真正的好的做法是:程序开发完成后,在发布mssqlserver的时候一般是发布微软的MSDE版本,在安装程序中将MSDE、安装脚本(可以是从你开发环境的mssqlserver自动生成的,但建议还是自己再多修改调试)一同打包进去,利用任何开发工具或打包程序都可以在安装MSDE后启动mssqlserver再利用shell等函数调用 \mssql7\binn\osql.exe 程序执行安装脚本,这样mssqlserver的安装,你的数据库安装哗哗哗的完成,并且安装脚本和安装程序是分离的,将来修改时也无须费神,就是这么简单,复杂点就是利用安装程序把服务器端和客户端做成可选的组件,这样一套程序一个安装程序全部搞定。
    (安装MSDE的例子可以到微软的网站下载)
    哈哈哈哈哈哈............................
      

  22.   

    受刺激耶! mssqlserver(mssqlserver), 莫再发神经."在发布mssqlserver的时候一般是发布微软的MSDE版本", 你是这么做的? 建议你去看看MSDE的局限(下面有).-------------------------------------------------
    http://www.microsoft.com/CHINA/msdn/vstudio/msde/default.htm
    -------------------------------------------------MSDE (Microsoft Data Engine) for Visual Studio 6.0针对移动和共享解决方案的SQL Server兼容的数据引擎MSDE (Microsoft Data Engine)是一个完全的创建移动
    和共享解决方案的SQL Server 7.0兼容的数据引擎,这些解决方案已在早期迁移到SQL Server 7.0。这些使用MSDE for Visual Studio 6.0创建的解决方案可以自由的分配,并且影响SQL Server的企业级的可靠性和特性,包括合并
    副本已实现可移动的计算。
    利用MSDE for Visual Studio 6.0,开发者能够完成以下工作:    在相同的代码基础上创建迁移到SQL Server 7.0的解决方案。    特许自由的分配由MSDE for Visual Studio 6.0创建的解决方案。    在一个免费可分配的桌面数据引擎上,提供基于SQL Server 7.0的企业级的可靠性和特性。    当需要完成下列工作时,开发者将会发现MSDE for Visual Studio 6.0是最佳的数据引擎:    开发一个迁移到SQL Server的可移动的或桌面的解决方案,该解决方案支持成百上千个用户或者从10GB到1TB字节的数据。    创建支持将副本和中心SQL Server合并的可移动解决方案。提供一个为SQL Server 7.0创建的产品的介绍版或测试版的自由发布。    提供可移动或共享解决方案的企业级的可靠性,包括对于事务记录、实时恢复和动态的备份存储。    支持一天24小时、一周七天的商业关键性服务。    实现与Windows NT安全性的结合。
        
    -------------------------------------------------
    http://www.microsoft.com/CHINA/msdn/vstudio/msde/deploying.htm
    -------------------------------------------------常见技术问题解答-- 部署MSDE 解决方案MSDE for Visual Studio 6.0 软件包包含在InstallShield 命令行安装程序当中。提供该命令行程序的目的是为了方便在桌面电脑和共享数据库解决方案当中发布配置 MSDE 。尽管其安装的设计目的是无人参与地自动运行,仍然可以在安装过程当中设置某些参数。在接下来地部分,我们将描述 MSDE 安装程序地两种使用方法。第一种方法使用了MSDE setup 以及Visual Studio 6.0 Package and Deployment Wizard(打包和部署向导)。
    问:如何使用Package and Deployment Wizard(打包和部署向导)发布MSDE?答:在应用软件的部署中包含 MSDE 要求执行一个命令行语句。Visual Studio 6.0 Package and Deployment Wizard 不支持命令行语句的执行。但是,Visual Studio 6.0 当中却包含有 Package and Deployment Wizard的 Visual Basic源代码。该项目位于"Program Files\Microsoft Visual Studio\VB98\Wizards\Template"目录下。开发人员可以通过修改这些代码,将 MSDE for Visual Studio setup的命令行执行包括进去。
    问: 如何在MSDE解决方案中分配数据库文件 ?答:Microsoft SQL Server 7.0 和MSDE 使用同样的数据库文件格式。这些文件能够从一个数据库脱离开来,
    附加到另外的数据库中。正是数据库文件的分离能力,为在MSDE桌面电脑和共享解决方案当中分配数据库提供
    了一条轻松便捷的途径。 比如, 开发人员可以使用 SQL Server 7.0 Developer edition 的设计一个数据库,
    然后将该数据库脱离出来,将其附加分配到 MSDE 解决方案当中。这样,就可以将该数据库附加到 MSDE中。-------------------------------------------------
    http://www.microsoft.com/CHINA/msdn/vstudio/msde/examing.htm
    -------------------------------------------------常见技术问题解答-- 分析 MSDE的局限性问:MSDE 能够存储多少数据?答:MSDE 数据库最多只能存储 2 G数据。该局限是对于每一个数据库来讲的,不是针对一个服务器,因此单独一个MSDE 服务器能够支持多个 MSDE 数据库,这些数据库每个都包含至多2 G的数据量。如果你的数据库已经或者将要超过 2 G数据量, 可以升级到 SQL Server Desktop 突破这个限制。SQL Server Desktop没有数据量限制,但是必须要拥有SQL Server的 CAL (Client Access License,客户访问许可)。
    问: MSDE 数据库能否服务于多个用户?答:MSDE 针对桌面电脑和共享解决方案进行了调整,在任何时间都能够支持 5 个以下的用户同时访问数据库。 SQL Server Desktop 同样也具有该性能,支持5个或少于5个用户同时访问。如果你的解决方案需要支持同时访问的用户数量多于5个,我们特别推荐你迁移到SQL Server 或者 SQL Server 企业版,以获得最佳性能。
    问:MSDE 数据库能否用于多服务器,多事务处理操作?答:否。跨服务器的多事务处理过程不能包括任何运行MSDE的机器。这些高级操作不能涉及任何 MSDE 数据库。
    如果没有单独的SQL Server CAL (Client Access License客户访问许可),MSDE 数据库不能请求 SQL Server 的服务。 请查看SQL Server 站点,了解 SQL Server 许可的其他信息。
    问:MSDE 在 Windows 95 和 Windows 98下操作有哪些局限?答:MSDE 在Windows 95 或 Windows 98平台上使用时,就不能使用象Windows NT 所提供的那些完整的安全特性。另外,在Windows 95 和Windows 98平台下,也不能远程启动MSDE 。还有,Windows 95 和Windows 98 不支持某些和MSDE有关的第三方网络协议。
    有关 MSDE 局限的其他信息,请参考MSDE for Visual Studio 6.0 : An Alternative to the Jet engine for Desktop and Shared Solutions (桌面电脑和共享解决方案中Jet引擎的替代者)当中的 "SQL Server Technologies at a Glance"(技术一览)一节。
      

  23.   

    to nononono(null,null) 
    那就讲讲你的存储过程怎么会有九千多行,MRP分解计算为什么不放在应用程序中处理
      

  24.   

    我前段时间刚好作过,已经在应用了,说说思路,仅供大家参考:
    安装程序结束前,调用自己写的程序,
    1、出现界面提示用户输入用户sa及password.
    2、程序将建立odbc连接,并以sa身份登录,
    3、在程序中用sql语句建立新用户及新数据库,
    4、在程序中以新用户登录,并通过sql语句开始建表,输入数据,等等,反正想干什么都可以了,
    5、完成后报告数据库配置完成。我用vb写的,用户只需输入sa用户的密码,sqlserver所在地机器名,所需要新建用户的名称、密码,所新建数据库名,程序就可以完成一切操作。
      

  25.   

    你的第二步为什么要使用odbc连接,用ado不行吗?还省用户的设置工作.
      

  26.   

    odbc连接也可以不用用户设置嘛.
      

  27.   

    freespider说得不错,我也做过,不过是用ADO 连接。
      

  28.   

    to guo 大哥,to nononono大哥
    小弟看了各位大哥的说法,对你们的敬仰之情如滔滔江水源源不决,如黄河泛滥一发不可收拾!
    我是一个刚出道的程序员,希望大哥们指点!可以告诉小弟各位大哥的QQ吗,有机会向大家请教!
    如果不方便在外面就发到!谢谢各位大哥!
      

  29.   

    可以email跟我联系[email protected]
      

  30.   

    如果安装程序可在安装sql server的机器上运行,这样如何?
    1.把设计好的database用sp_detach_db从sql server分离;
    2.设计安装程序,把mdf和ldf文件copy到特定路径;
    3.再执行sp_attach_db(用ADO不知行不行),一切OK!
      

  31.   

    我同意EdwinYeah老兄的说法,我经常这样干。不过ADO没有试过!!!!
      

  32.   

    我还是觉得4no在最顶上的第一个方法好:
    1,在Manager里将数据库还原成SQL Script.
    2,将Script在Server端运行,或者用VB开发一个程序运行Script文件,打包