在项目中是支持多数据库的(MYSQL,SQL2000),我只知道通过SQL语句将数据库添加进去,如SQL2000的添加:
EXEC sp_attach_db @dbname = N'DB', 
   @filename1 = N'e:\DB.mdf', 
   @filename2 = N'e:\DB_log.ldf'但在代码下是要先连接到数据库才能执行SQL语句的,后来想到一个方法,就是先连接SQL2000自带的数据库‘master’,然后执行添加项目数据库DB的方法,这样虽然可以但数据库连接执行两次才能开始业务的数据操作,有没有其他的方法也可以实现这样的功能呢?还有MYSQL的也是这样的。

解决方案 »

  1.   

    我的理解LZ的意思是当程序初次部署时没有一个程序的应用库存在时,目前我也只知道LZ说的,先去连接一个已有的系统库。
      

  2.   


    楼上的朋友理解了一半,我们做的是通信软件,每次操作都是以一个工程来保存这次的操作数据,所以工程有三种动作,新建工程,打开工程,保存工程。
    针对这三种动作,我们用三个同样的数据库来做的。这三个数据库分别放在三个文件夹中,第一个文件夹存放的是原始数据库文件(里面什么表都没有,空数据库);第二个文件夹存放的是当前用户操作的数据库(可以理解为当用户新建或打开工程时使用的数据库);第三个文件夹存放的是用户保存工程后数据库文件就会复制到这里。当用户新建工程时会从第一个文件夹将原始数据库复制到第二个文件夹中,用户保存工程或打开新工程时会将第二个文件夹的数据库复制到当前工程文件夹中,也就是第三个文件。所以每当用户新建工程的时候我们会把第一个文件夹里面的原始数据库复制到第二个文件夹下,然后让数据库服务加载数据库。这样的问题就是每次都要先连接系统数据库然后执行加载数据库的SQL,然后断开这个系统数据库的连接与工程数据库连接,最后才能进行业务操作。这个工程需要连接两次数据库,太麻烦了,有没有更好的方法?
      

  3.   

    up
    up
    up
    为何不去数据库版块问呢,那效率不是更快?
      

  4.   

    使用数据库管理系统提供的命令行工具自动执行SQL脚本文件,如 SQL Server 2000(or 2005) 提供的isql.exe和osql.exe
    Oracle提供的sqlplus.exeMySQL没用过,但想必也会提供相应的命令行工具。