SQL Server肯定要装啦。但"逐一建库,表,链接等?"就有点麻烦了,你可以在你开发过程中建立的测试数据库进行整理后backup出来,再restore进去,这restore过程可以手工完成(借助SQL server的Enterprise manager),也可以自已做了安装程序(如果只有一两个用户就没必要了)。

解决方案 »

  1.   

    把所有表的script导出,存成.sql文件,再再服务器上执行一下即可。
      

  2.   

    我的测试数据库 backup 无法 restore 到一个全新的sql server 。我用的是SQL server的Enterprise manager),
    kingsong(牛大锅)我的数据没有丢失。 
      

  3.   

    我说的方法是只建个库结构,数据没有。既然你给用户用,测试数据当然得去掉。
    restore时选项加个force ....(忘了,option页上第三个)。
      

  4.   

    你先用delete * from tablename把数据清掉。做安装程序的时候把数据库也作进去,不就完了!
      

  5.   

    不行呀,那些测试数据也要的。
    我经理的意思是:用户安装时,先联接服务器,检测有没有数据库,if 没有数据库,then ,是否要建。if 要件,指定服务器,建库、表,联接。
      

  6.   


    //用一个ADOConnection和一个ADOCommand控件//用于得到当前计算机的名称
    function ComputerName :string;
    var
      CNameBuffer :Pchar;
      fl_Loaded :Boolean;
      Clen :^Dword;
    begin
      GetMem(CNameBuffer,255);
      New(Clen);
      Clen^ := 255;
      fl_Loaded := GetComputerName(CNameBuffer,Clen^);
      if fl_Loaded then
        result := strPas(CNameBuffer)
      else
        result :='unknown';  FreeMem(CNameBuffer);
      DisPose(Clen);
    end;//检测是否有数据库,如果没有创建
    procedure Tdm1.DataModuleCreate(Sender: TObject);
    begin//判断数据库文件是否存在
      if not FileExists('C:\test.mdf') then
      CheckDataBase;end;
    //创建数据库。
    procedure Tdm1.CheckDataBase;
    var
      Name : widestring;
      AliasList, TableList, MyList :Tstrings;
      DataFile,LogFile : string;
    begin
        Name := ComputerName;
        ADOConnection1.Connected := False;
        ADOCommand1.ConnectionString :='Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=master;Data Source=' + Name;//指出你要创建的数据库的位置
          DataFile := 'c:\test.mdf';
          LogFile := 'c:\test.ldf';      ADOCommand1.CommandText := 'create database test'
          +' on primary '
          +' (name = test ,filename = '
          + '''' + DataFile + ''','
          +' size= 4 , maxsize = 10, filegrowth = 10%)'
          +' log on '
          +' (name = tianlogfile,  filename = '
          + '''' + LogFile + ''','
          +' size = 1, maxsize = 4, filegrowth = 10%)';      ADOCommand1.Execute;      ADOCommand1.ConnectionString :='Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=tianyi;Data Source=' + Name;      //为数据库创建相应的表
          ADOCommand1.CommandText :='Create Table 部门 (部门名称 char (20) Not Null )';
          ADOCommand1.Execute;end;
    这是我原来用的一段代码。可能会有些问题,看能不能帮是忙。希望会有高手来帮你!祝你好运!
      

  7.   

    楼上的:1 数据库文件(*.mdf,*.ldf)存在,并不能说明数据库一定存在
    2 数据库用户及其权限的建立呢?
    3 当表很多呢?
    4 要建存储过成呢?

    完善了这几点,会是一个不错的安装程序。
      

  8.   


    SQL = 'select count(*) from sysdatabases where name =''yourdatabasename''';
    if fields[0].Asinteger = 0  then CreateDatabaseAndTable;procedure CreateDatabaseAndTable;
    begin
      with ADOQuery do
      begin 
        Close;
        SQL.Clear;
        //将你的数据库全部表的Script导出成一个文件.
        SQL.LoadFromFile('your Create table SQL filename');
        ExecSQL;
      end;
    end;
      

  9.   

    忘了,应该这是对SQLServer的master数据库
    SQL.Add('use master');
    SQL.Add( 'select count(*) from sysdatabases where name =''yourdatabasename''');
    if fields[0].Asinteger = 0  then CreateDatabaseAndTable;procedure CreateDatabaseAndTable;
    begin
      with ADOQuery do
      begin 
        Close;
        SQL.Clear;
        //将你的数据库全部表,还有其它什么的Script导出成一个文件.
        SQL.LoadFromFile('your Create table SQL filename');
        ExecSQL;
      end;
    end; 
      

  10.   

    各位英雄,像你们平常这种数据库程序(sql server )如何发布给用户呢?用户也没有数据库呀!
      

  11.   

    foxling(阿飞林)兄,佩服,佩服!!!
      

  12.   

    谢谢各位。有点进展。
    我直接将information.mdf & information.ldf 拷贝到应用程序中,或拷贝到目标数据库服务器上能不能行?
      

  13.   

    拷贝后要在查询分析器中运行系统存储过程sp_AttachDB
      

  14.   

    在客户端有mdf&ldf文件就行了
    然后在应用程序中调用存储过程sp_attachdb将数据库恢复到服务器中
    (当然要保证客户端和服务器已经联通)至于用户权根还是用程序调用
    系统存储过程建立用户和权限就OK了