请教各位高手,用Dephi开发的程序,通过InstallShield 700制作安装包时,如何将已有的数据库文件自动创建到MSSQL中……??假设客户机器上已经有SQLSERVER,数据库文件名为Saler?

解决方案 »

  1.   

    用installshield好像实现不了,用其他的打包程序好像也比较难实现。
    这个一般是通过程序设置。
      

  2.   

    try
        ADOConnection1.Close;
        ADOConnection1.DefaultDatabase:='master';
        ADOConnection1.Open;
        ADOQuery1.sql.Clear;
        s:='restore database yygl from disk= '+quotedstr(getcurrentdir()+'\mydatabase.dat');
           {+' with move '+quotedstr(mydatabase_data')+' to '+quotedstr(getcurrentdir()+'\data\mydatabase.mdf ')+', move '+quotedstr(mydatabase_log')+' to '
           +quotedstr(getcurrentdir()+'\data\mydatabase.ldf');   }
        ADOQuery1.SQL.Add(s);
        ADOQuery1.ExecSQL;
      except
        screen.Cursor:=crDefault;
        showmessage('错误:数据库表结构创建失败!');
        ADOConnection1.Close;
        application.Terminate;
      end;上面提到的.dat文件就是你的空的数据库,简单吧,把这个作个程序,放在setup完成后执行一下就行了
    关于登录master如下:
    try
        ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Password='+trim(password.Text)+';Persist Security Info=True;User ID='+trim(admin.Text)+';Data Source='+trim(ip.Text);
        ADOConnection1.DefaultDatabase:='master';
        ADOConnection1.Connected:=true;
      except
        screen.Cursor:=crDefault;
        showmessage('错误:有关数据库参数设置有误!');
        Button1.Visible:=true;
        Button2.Visible:=true;
        Label6.Visible:=false;
        exit;
      end;
    两个text分别是管理员的名称和口令
      

  3.   

    你的意思是把mydatabase换成我的数据库文件名就可以了吗?然后'restore database yygl from disk= '+quotedstr(getcurrentdir()+'\mydatabase.dat');
           {+' with move '+quotedstr(mydatabase_data')+' to '+quotedstr(getcurrentdir()+'\data\mydatabase.mdf ')+', move '+quotedstr(mydatabase_log')+' to '
           +quotedstr(getcurrentdir()+'\data\mydatabase.ldf');   }
    中为什么把下面三行注释掉?
      

  4.   

    我试过了.应该是好使得最后能不能帮个忙,我安装的时候没有设用户名和密码,为什么他要求我输入这些?
    text分别是管理员的名称和口令,没有怎么输?