日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

自動安裝sql server數據庫

瀏覽:165日期:2023-11-03 10:47:16

這段時間,手頭的項目接近收尾,以前不太注意的工程打包問題卻慢慢凸現出來,這里指的不單單是制作一個可以安裝的工程安裝包,還有關于缺少運行環境時的數據庫實例的安裝和數據庫數據的安裝恢復。這里先把關于MSDE打包進安裝程序的心得于大家分享,那么咱們廢話少說。

當你的項目基本完成測試,準備發布的時候,制作一個用戶使用簡便的自動安裝包就成為編碼完成后的又一個需要解決的問題,工程開發的是否完滿,從安裝中,用戶應該會有個最初的體驗。

下面簡單介紹一下如何在工程中添加Microsoft SQL Server 2000 Desktop Engine (MSDE)的自動安裝合并模塊MSM:

1. 首先你需要下載MSDE2000的sp3安裝包。可以從下面的鏈接去下載,URL: http://www.microsoft.com/sql/downloads/2000/sp3.asp

2. 下載完成,你可以安裝或者用ZIP解壓到本地硬盤,將可以看到:Msi、MSM、Setup這3個目錄和setup等文件,其中的MSM文件夾中的東東就是本文要介紹的MSDE2000合并模塊。

3. 在你的工程中添加一個安裝工程(假設為MySetup1,路徑為c:MySetup1),按照正常的步驟添加工程輸出(Project Output),選擇輸出文件(primary output)和內容文件(content files)兩項。

4. 添加合并模塊(Merge Moudle),選擇瀏覽,指定到你的MSDE的MSM文件夾,選則MSM和msm1033下的所有的文件(REPL.MSM、REPL_RES.MSM、 DMO_RES.MSM和DMO.MSM可以不選),打開。

5. 設置安裝工程的屬性(Properties)中的SearchPath,指定為你的MSM所在路徑(這時需要添加兩個:pathMSM和pathMSM1033)。

6. 設置關于安裝程序的其他屬性咱們暫且不提,這是可以對你的安裝工程進行編譯了,當編譯通過后,你可以在c:MySetup1Debug看到你的打包工程MySetup.msi。

7. 這是工程打包告一段落,下面我們需要修改打好的安裝包,使它可以在安裝完程序后自動安裝MSDE的一個實例(假設實例名為:MyServer)。現在我們需要用到MS的一個工具ORCA,下載地址:http://support.microsoft.com/default.aspx?scid=kb;EN-US;255905安裝了orca后就可以利用這個工具對我們的MySetup1.msi進行修改了。

8. 用ORCA打開安裝包文件MySetup.msi,找到Property這個table,ADD Row 在Propetry中填入SqlInstanceName,value中填入實例名MyServer。其他的參數請參見:http://support.microsoft.com/?id=810826和http://support.microsoft.com/default.aspx?scid=kb;en-us;281983

9. 所有的參數中有關密碼的屬性,我沒有成功,就是SqlSaPwd,這個參數是和SqlSecurityMode一起使用的,但是我一直沒有設置成功,密碼總是為空的,不知何故!

10. 選擇InstallExecuteSequence這個table,找到SetPropSQLMSDEInstalled這個Action,修改206為102;找到RemoveExistingProducts,修改1525為6601。保存,退出!

這時,在沒有SQL環境的機器上運行你的安裝包,在程序安裝完后,會自動安裝MSDE的MyServer實例,并在重起機器后,自動啟動Sql Server的實例。

=======================================================================

前一篇中介紹了如何連同Sql Server的桌面版本一同打包到安裝程序的簡單步驟,這里還想就自己對于:發布程序到已經有SQL環境的計算機時,自動使用SQL的Osql來恢復指定的數據庫到你的SQL Server的Date中。

首先,在c:創建一個臨時目錄,例如c:TempBD ,拷貝Osql.exe到目錄下,拷貝你的數據庫備份(TruckDB)到目錄下;在目錄下分別創建Restore.bat和Restore.txt文件,內容如下:

1. Restore.bat文件內容:

osql -E -S -i C:TempDBRestore.txt

2. Restore.txt文件內容:

use master

if exists (select * from sysdevices where name=´TruckDB´)

EXEC sp_dropdevice ´TruckDB´

Else

EXEC sp_addumpdevice ´disk´,´TruckDB´, ´C:Program FilesMicrosoft SQL ServerMSSQLDataTruckDB.mdf´

restore database TruckDB

from disk=´c:TempDBTruckDB´

with replace

其次,在你的工程中添加一個Installer Class:選中Project主工程,添加Installer Class,名稱假定為installer1。選擇instller1的代碼頁,添加下面的代碼:

Public Overrides Sub Install(ByVal stateSaver As System.Collections.IDictionary)

´重寫install方法

Dim file As System.IO.File

If file.Exists('C:Program FilesMicrosoft SQL ServerMSSQLDataTruckDB_data.mdf') = True Then Exit Sub

MyBase.Install(stateSaver)

Dim CheckedDir As System.IO.Directory

If CheckedDir.Exists('C:Program FilesMicrosoft SQL ServerMSSQLData') = False Then

CheckedDir.CreateDirectory('C:Program FilesMicrosoft SQL ServerMSSQLData')

End If

Dim FullPath As String

Dim Asm As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly()

Dim strConfigLoc As String

strConfigLoc = Asm.Location

Dim strTemp As String

strTemp = strConfigLoc

´提取安裝路徑

strTemp = strTemp.Remove(strTemp.LastIndexOf(''), Len(strTemp) - strTemp.LastIndexOf(''))

´Copy DateBase to computer.

If CreatDIR(strTemp) = False Then

´失敗,反安裝

Me.Uninstall(stateSaver)

Exit Sub

Else

End If

If InstallDB(strTemp) = False Then

‘失敗,反安裝

Me.Uninstall(stateSaver)

Exit Sub

Else

End If

‘刪除數據庫臨時文件

DeleteDIR(“c:TempDB”)

DeleteDIR(strTemp “TempDB”)

End Sub

Public Overrides Sub Uninstall(ByVal stateSaver As System.Collections.Idictionary)

‘執行反安裝

‘利用反射提取安裝路徑

MyBase.Uninstall(stateSaver)

Dim Asm As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly()

Dim strConfigLoc As String

strConfigLoc = Asm.Location

Dim strTemp As String

strTemp = strConfigLoc

strTemp = strTemp.Remove(strTemp.LastIndexOf(“”), Len(strTemp) – strTemp.LastIndexOf(“”))

‘刪除數據庫文件和臨時文件

DeleteDIR(strTemp “TempDB”)

DeleteDIR(“c:TempDB”)

End Sub

Private Function DeleteDIR(ByVal path As String) As Boolean

‘刪除指定的文件夾

Dim dir As System.IO.Directory

If dir.Exists(path) = True Then dir.Delete(path, True)

End Function

Private Function CreatDIR(ByVal path As String) As Boolean

‘創建指定的文件夾

Dim Files As System.IO.File

Dim Dirs As System.IO.Directory

Try

If Dirs.Exists(“c:TempDB”) = False Then Dirs.CreateDirectory(“c:TempDB”)

‘copy Creat DB files

CopyFile(path “TempDB”, “C:TempDB”)

Return True

Catch

Return False

End Try

End Function

Private Sub CopyFile(ByVal SourceDirName As String, ByVal DestDirName As String)

‘copy指定的文件夾的所有文件到目標文件夾(單層)。

Dim dir As System.IO.Directory

Dim File As System.IO.File

Dim sPath, oPath As String

Dim I As Integer

For I = 0 To dir.GetFiles(SourceDirName).Length – 1

sPath = dir.GetFiles(SourceDirName).GetValue(i).ToString

oPath = Microsoft.VisualBasic.Right(sPath, Len(sPath) – Len(SourceDirName))

File.Copy(sPath, DestDirName oPath, True)

Next

End Sub

Private Function InstallDB(ByVal path As String) As Boolean

‘安裝數據庫,調用自動批處理。

´Dim CheckedDir As System.IO.Directory

´If CheckedDir.Exists(“C:Program FilesMicrosoft SQL ServerMSSQLData”) = False Then

´CheckedDir.CreateDirectory(“C:Program FilesMicrosoft SQL ServerMSSQLData”)

´End If

Try

Shell(“c:TempDBRestore.bat”, AppWinStyle.Hide, True)

Catch

End Try

End Function

然后,在你的工程中添加一個安裝工程,取名為MySetup1,按照正常的步驟添加工程輸出(Project Output),選擇輸出文件(primary output)和內容文件(content files)兩項,再添加文件夾到application Folder,文件夾的Name為TempDB,再給文件夾TempDB添加文件:osql.exe,Restore.bat,Restore.txt,TruckDB(數據庫文件)。設定你的文件夾的properties的AlwaysCreate為True。對你的Setup工程進行編譯。

這時,生成的安裝包,將會在安裝完程序后,自動調用Installer類的方法,恢復你的TruckDB數據庫。

注意,TruckDB在生成的時候,應該備份保存到“C:Program FilesMicrosoft SQL ServerMSSQLData”下,便于恢復。

標簽: Sql Server 數據庫
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
麻豆精品网站| 精品网站999| 久久精品亚洲人成影院| 国产乱码精品一区二区三区四区| 亚洲资源网站| 日本不卡视频在线| 91成人精品在线| 久久av日韩| 91一区二区三区四区| 麻豆理论在线观看| 国产99久久| 在线日韩成人| 国产人成精品一区二区三| 卡一精品卡二卡三网站乱码| 高清av一区| 欧美成人国产| 巨乳诱惑日韩免费av| 日韩三级精品| 国产亚洲一卡2卡3卡4卡新区| 欧美国产三级| 亚洲不卡系列| 91久久黄色| 91伊人久久| 日韩精品永久网址| 亚洲深夜福利在线观看| 久久精品国产久精国产| 欧美国产91| 国产调教精品| 一本大道色婷婷在线| 在线精品亚洲| 天堂а√在线最新版中文在线| 视频一区欧美日韩| 国产一区二区三区四区五区| 老牛影视精品| 亚洲区国产区| 国产精品久久观看| 亚洲精品一二三区区别| 欧美一级网站| 午夜国产一区二区| 国产精品一区2区3区| 九一成人免费视频| 国产极品久久久久久久久波多结野| 亚洲爱爱视频| 欧美中文高清| 欧美在线亚洲综合一区| 国产精品a久久久久| 欧美日韩国产精品一区二区亚洲| 国产剧情在线观看一区| 蜜桃成人av| 国产精成人品2018| 蜜臀av免费一区二区三区| 国产亚洲精品精品国产亚洲综合| 欧美.日韩.国产.一区.二区| 国产精品一区二区三区美女| 免费黄色成人| 欧美激情在线精品一区二区三区| 自由日本语亚洲人高潮| 国产不卡人人| 国产午夜一区| 亚洲欧美网站在线观看| 99视频精品视频高清免费| 国产精品巨作av| 亚洲另类av| 伊人久久av| 老牛国内精品亚洲成av人片| 日韩在线成人| 久久国产成人| 99热精品久久| 日本黄色精品| 国产精品极品国产中出| 午夜天堂精品久久久久| 激情久久久久久| 高清av不卡| 美女精品久久| 奇米亚洲欧美| 在线精品福利| 久久五月天小说| 97国产成人高清在线观看| 日本午夜免费一区二区| 亚洲一区二区三区久久久| 日韩午夜在线| 欧美特黄一级| 国产综合色产| 亚洲大片在线| 999精品一区| 久久人人精品| 色爱av综合网| 久久久久国产精品一区三寸| 国产a亚洲精品| 麻豆成人综合网| 欧美1区2区3| 久久精品国产99| 欧美国产美女| 国产黄大片在线观看| 久久精品免费看| 麻豆一区二区在线| 美女国产精品久久久| 另类综合日韩欧美亚洲| 久久精品亚洲| 国产精选在线| 久久久蜜桃一区二区人| 日韩高清中文字幕一区二区| 成人羞羞在线观看网站| 丝袜美腿诱惑一区二区三区| 91精品韩国| 黑森林国产精品av| 久久久久国产精品一区二区| 欧美日韩一二| 久久久久中文| 狠狠爱www人成狠狠爱综合网| 黄色亚洲在线| 亚欧洲精品视频在线观看| 国产无遮挡裸体免费久久| 国产精品久久久一区二区| 久久爱www成人| 亚洲女同av| 久久久一二三| 日本大胆欧美人术艺术动态| 三级久久三级久久久| 国产亚洲欧美日韩在线观看一区二区| 国产精品va| 久久久久99| 亚洲+小说+欧美+激情+另类| 欧美一区成人| 成人在线观看免费视频| 久久精品在线| 在线观看视频免费一区二区三区| 亚洲三级观看| 精品伊人久久久| 亚洲精品在线观看91| 欧美一区影院| 国内亚洲精品| 国产日韩欧美一区| 欧洲亚洲一区二区三区| 亚洲乱码久久| 黄毛片在线观看| 久久亚洲电影| 蜜桃精品视频| 日本在线精品| 日韩中文字幕无砖| 成人在线黄色| 亚洲一区二区三区在线免费| 久久精品欧洲| 国产亚洲精品久久久久婷婷瑜伽| 日韩精品1区2区3区| 成人在线丰满少妇av| 美女精品在线观看| 国产经典一区| 伊人久久大香线蕉av超碰演员| 91综合久久爱com| 久久久水蜜桃av免费网站| 日本精品另类| 国产99久久久国产精品成人免费| 日韩精品一级二级| jizzjizz中国精品麻豆| 日韩中出av| 免费国产自久久久久三四区久久| 欧美日本久久| 狠狠爱成人网| a天堂资源在线| 欧美日韩一区二区三区不卡视频| 久久久精品五月天| 国产欧美日韩一级| 91久久国产| 国产一区二区三区四区大秀| 日本亚洲三级在线| 女人天堂亚洲aⅴ在线观看| 欧美国产精品| 亚洲图片久久| 国产综合激情| 欧美香蕉视频| 老司机免费视频一区二区三区| 亚洲永久精品唐人导航网址| 成人久久久久| 精品一区二区三区中文字幕| 久久福利精品| 国产综合精品| 成人精品久久| 国产乱码精品一区二区三区亚洲人| 99精品99| 天堂а√在线最新版中文在线| 日韩国产精品久久久久久亚洲| 欧美 日韩 国产一区二区在线视频 | 日韩一区二区免费看| 国产一区国产二区国产三区 | 国产成人精品一区二区三区视频| 美国三级日本三级久久99| 久久中文字幕av| zzzwww在线看片免费| 麻豆91在线播放| 欧美影院视频| 日韩精品亚洲专区在线观看| 久久成人国产| 日韩av有码| 麻豆视频一区二区| 91av一区| 日本成人在线网站| 免费在线视频一区| 99riav国产精品| 亚洲一区二区三区四区五区午夜|