安装时用installsheild
可以用VB 生成 installDatabase.exe 此exe是按装数据库,根据sql脚本生成表等。
Private Sub Command1_Click()
On Error GoTo ErrorHandler
Dim Sql2000 As Object
Set Sql2000 = CreateObject("SQLDMO.Application")
Dim SqlInstance As Object
Set SqlInstance = CreateObject("SQLDMO.SQLServer")
Dim DatabaseName As StringDim sqlID As String
Dim Sqlstr As String
Dim fname As String
Me.MousePointer = 11SqlInstance.Connect Me.comServers.Text, Me.txtUser.Text, Me.txtPassword.Text
sqlID = SqlInstance.ConnectionID
Set SqlInstance = Sql2000.SQLServers.ItemByID(sqlID)
Dim newDataBase As Object
Set newDataBase = CreateObject("SQLDMO.Database")DatabaseName = Me.txtDatabase
newDataBase.Name = Me.txtDatabase
SqlInstance.Databases.Add newDataBase
fname = "sql.txt"
Sqlstr = GetStr(fname)
Sqlstr = "use [" + DatabaseName + "]" + vbCrLf + Sqlstr
SqlInstance.ExecuteImmediate (Sqlstr)Set Sql2000 = Nothing
Set NameList = Nothing
Set SqlInstance = Nothing
Me.MousePointer = 0
MsgBox "成功"
End
Exit Sub
ErrorHandler:
Me.MousePointer = 0
MsgBox "失败"
End Subgetstr()是把sql脚本读出到一字符串

解决方案 »

  1.   

    我觉得,将数据库打包成Access的,再在安装的时候倒入到SQL Server里面
      

  2.   

    使用installshield,可以直接附加数据库:
    /////////////////////////
    // 创建和优化数据库
    //////////////////////////
    function CreateDataBase(svSQLsvr,svSQLusr,svSQLpwd)
    STRING szCmdLine1,szWaitTxt,szdatabase,path;
    begin    
    path=INSTALLDIR+"\database\\mydatabase_data.mdf";
    szWaitTxt=" 正在创建数据库....";
    SdShowMsg (szWaitTxt, TRUE);
    Delay(2); 
    //szCmdLine="hello";
    szdatabase = "/U "+svSQLusr+" /P "+svSQLpwd+" /S "+svSQLsvr+" /Q \"exec sp_attach_db N'fenoffice' , N'"+path+"'\"";
    //SdShowMsg(szdatabase,WAIT); 
    //Delay(5);
    if (LaunchAppAndWait("osql.exe", szdatabase,WAIT)<0) then;
    MessageBox ("数据库创建失败!请确您的系统中已安装 Microsoft SQL Server 2000.\n如仍无法解决,请联系系统供应商!",SEVERE);
    endif;
    SdShowMsg (szWaitTxt, FALSE);
    return 0;
    end;
      

  3.   

    ms-help://MS.VSCC/MS.MSDNVS.2052/vsintro7/html/vxwlkwalkthroughusingcustomactiontocreatedatabaseduringinstallation.htmhttp://www.aspxcn.com/dotnetarticle/html/131.html