向各位大哥请教一个数据库打包问题,谢谢 |
尚未結案
|
lsh998
中階會員 ![]() ![]() ![]() 發表:163 回覆:138 積分:60 註冊:2005-01-07 發送簡訊給我 |
|
lsh998
中階會員 ![]() ![]() ![]() 發表:163 回覆:138 積分:60 註冊:2005-01-07 發送簡訊給我 |
|
lsh998
中階會員 ![]() ![]() ![]() 發表:163 回覆:138 積分:60 註冊:2005-01-07 發送簡訊給我 |
|
timhuang
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
Hi, 可以使用 innosetup 5.1.4 新版本的打包工具, 目前已經能支持 ole automation 了, 如此一來便能方便地在打包作業中檢測 sql server 是否有安裝, 及將資料庫新增進去的作業了, 請參考 http://www.jrsoftware.org/ 下載 5.1.4 版本後, 裡面有個 sample 檔名為 codeautomation.iss 中的一段,
var SQLServer, Database, DBFile, LogFile: Variant; IDColumn, NameColumn, Table: Variant; begin if MsgBox('Setup will now connect to Microsoft SQL Server ''' SQLServerName ''' via a trusted connection and create a database. Do you want to continue?', mbInformation, mb_YesNo) = idNo then Exit; { Create the main SQLDMO COM Automation object } try SQLServer := CreateOleObject('SQLDMO.SQLServer'); except RaiseException('Please install Microsoft SQL server connectivity tools first.'#13#13'(Error ''' GetExceptionMessage ''' occurred)'); end; { Connect to the Microsoft SQL Server } SQLServer.LoginSecure := True; SQLServer.Connect(SQLServerName); MsgBox('Connected to Microsoft SQL Server ''' SQLServerName '''.', mbInformation, mb_Ok); { Setup a database } Database := CreateOleObject('SQLDMO.Database'); Database.Name := 'Inno Setup'; DBFile := CreateOleObject('SQLDMO.DBFile'); DBFile.Name := 'ISData1'; DBFile.PhysicalName := 'c:\program files\microsoft sql server\mssql\data\IS.mdf'; DBFile.PrimaryFile := True; DBFile.FileGrowthType := SQLDMOGrowth_MB; DBFile.FileGrowth := 1; Database.FileGroups.Item('PRIMARY').DBFiles.Add(DBFile); LogFile := CreateOleObject('SQLDMO.LogFile'); LogFile.Name := 'ISLog1'; LogFile.PhysicalName := 'c:\program files\microsoft sql server\mssql\data\IS.ldf'; Database.TransactionLog.LogFiles.Add(LogFile); { Add the database } SQLServer.Databases.Add(Database); MsgBox('Added database ''' Database.Name '''.', mbInformation, mb_Ok); { Setup some columns } IDColumn := CreateOleObject('SQLDMO.Column'); IDColumn.Name := 'id'; IDColumn.Datatype := 'int'; IDColumn.Identity := True; IDColumn.IdentityIncrement := 1; IDColumn.IdentitySeed := 1; IDColumn.AllowNulls := False; NameColumn := CreateOleObject('SQLDMO.Column'); NameColumn.Name := 'name'; NameColumn.Datatype := 'varchar'; NameColumn.Length := '64'; NameColumn.AllowNulls := False; { Setup a table } Table := CreateOleObject('SQLDMO.Table'); Table.Name := 'authors'; Table.FileGroup := 'PRIMARY'; { Add the columns and the table } Table.Columns.Add(IDColumn); Table.Columns.Add(NameColumn); Database.Tables.Add(Table); MsgBox('Added table ''' Table.Name '''.', mbInformation, mb_Ok); end; |
lsh998
中階會員 ![]() ![]() ![]() 發表:163 回覆:138 積分:60 註冊:2005-01-07 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |