需求是这样的:用户填写完数据库名称和路径,点击确定以后,程序自动创建出数据库,数据库中的表及约束,再往表中插入一些基础数据。我的问题是:创建出数据库,数据库中的表及约束,再往表中插入一些基础数据,这些脚本我都已经写好了,但是不知道放在哪里执行呢?查了一下也许有如下几种方法:1)直接把sql语句放在程序里,(比如 sqlStr="create....";)然后执行。
这样做的问题是:脚本太长了,放字符串变量里好像不合适,另外也不好维护。2)放到文件里,程序执行的时候读文件的内容,然后执行。
这样做的问题是:暴露了库结构,我想让库结构保密的。有人说给文本文件加密,但是,我不知道读文件+加密解密的过程是不是会导致效率低下。3)放到存储过程里:有人告诉我把这些脚本写成存储过程放到master数据库中,用户点确定以后程序调用master中的存储过程来执行这样做的问题是:我不会交给客户安装文件以后,如何在安装程序的时候就把这些存储过程放到master数据库中呢?在此请教各位给出一个可执行的方案,谢谢了!!!

解决方案 »

  1.   

    放在App_Data目录里,按文件的方式存储,因为建表肯定不是经常执行,所以效率问题不用太在意,况且加密解密 也没有你想象中的那么的影响性能。
      

  2.   

    这样做的问题是:我不会交给客户安装文件以后,如何在安装程序的时候就把这些存储过程放到master数据库中呢?
    写个批处理文件,然后用命令方式登录数据库,然后执行这些文件
      

  3.   


    这位大哥,这些存储过程是怎么放到master数据库里面的?能否说详细一点?我还是不太懂
      

  4.   

    放在App_Data目录里,按文件的方式存储,因为建表肯定不是经常执行,所以效率问题不用太在意,况且加密解密 也没有你想象中的那么的影响性能
      

  5.   

    http://www.newsmth.net/bbsanc.php?path=%2Fgroups%2Fcomp.faq%2FDotNET%2Fnewsmth%2Ftec%2F10%2FM.1095235483.C0
      

  6.   

    我的程序是CS程序,客户在安装的时候不要求安装SQL server,这样的话,我不可能手动在master数据库中先创建好存储过程,所以,说用存储过程的朋友,请说明如何在客户安装程序的时候,就把事先写好的存储过程放到master数据库中?