DNN模組開發 如何寫模組資料庫安裝指令碼

2021-04-19 19:38:21 字數 1388 閱讀 4028

編寫dotnetnuke(以下簡稱dnn)模組相關資料庫安裝/解除安裝指令碼,是模組開發的乙個重要環節。dnn程式會根據模組相關的指令碼自動安裝或解除安裝模組相關的表和儲存過程等。

dnn中模組的資料庫安裝指令碼一般命名為:版本號.具體資料訪問provider名稱(如對應sqlserver的安裝檔案可為:01.00.00.sqldataprovider)。在上傳新模組時,dnn的模組安裝程式,會根據dnn檔案中所列舉的資料庫指令碼清單,按版本順序執行資料庫指令碼。如果是公升級安裝則只執行大於當模組前版本的資料庫安裝指令碼。所以在編寫下乙個版本的資料庫安裝指令碼時一定要記住這一點:在原來的基礎上修改,而不是全部重寫。比如:你有乙個模組在下乙個版本的改動中只是新增了乙個儲存過程,那麼這個版本的資料庫指令碼只需包含建立該儲存過程的**即可,無需重寫全部物件。同時還要注意模組版本與資料庫指令碼版本的統一。    dnn中模組的資料庫解除安裝指令碼一般命名為:uninstall.具體資料訪問provider名稱(如對應sqlserver的解除安裝檔案可為: uninstall.sqldataprovider)。在刪除模組時,dnn會根據這個檔案的內容刪除模組相關的表和儲存過程。  編寫指令碼的步驟可如下(已sql server資料庫為例):

1、在資料庫中建立要使用到的表和儲存過程。

2、可先用sql server的查詢分析器生成相關表和儲存過程的建立/除去指令碼。3、將這些物件的指令碼複製到乙個檔案中,並在表和儲存過程物件名稱前面加上 字首;在主/外來鍵名稱上加上字首,如:pk _clinks、fk_clinks_modules。

關於的含義和用途可參見:http://www.cn

4、按照資料庫安裝/解除安裝指令碼的命名規則分別命名檔案。

5、具體的一些做法,也可參照已有模組的資料庫安裝/解除安裝指令碼檔案

6、好像有個模版也可以編寫儲存過程,不過好像用途不大,有興趣的可以去看看:

乙個值得注意的問題:

sql server資料庫的安裝/解除安裝指令碼,是通過sqldataprovider類中的executescript方法執行的。該方法中有這麼一句「dim delimiter as string = "go" &;amp; controlchars.crlf」,也就是說是以:「go 回車換行符」來分割一段sql指令碼中每乙個可被執行的sql語句。利用split分隔每乙個語句到乙個陣列中,通過迴圈執行每乙個sql。這樣我們在寫資料庫的安裝/解除安裝指令碼時一定要注意在每乙個語句後面都加上「go 回車換行符」,特別是最後一句的「回車換行符」一定不能忘記。否則,最後一句要麼執行不了,要麼會報錯。  還有乙個值得注意的問題:

資料庫的安裝/解除安裝指令碼檔案必須以utf-8編碼格式儲存,否則可能會報錯。

如何寫Asterisk模組(3)

在該部分你將看到如何實現 asterisk cli 命令。對 asterisk 來說,cli 是尤為重要的,無論是在進行配置 顯示狀態以及除錯都會用到。該部分將對如何寫 asterisk 模組 2 的基礎上進行新增 首先我們需要包含定義 cli命令介面的標頭檔案。include asterisk c...

如何寫資料庫表的SQL ?

現有a b c三個表 主鍵都是snum,現要實現刪除a表中某個記錄 比如snum為1的記錄 如何級聯刪除b c表中snum為1的記錄?如果b,c表的snum是參照a的snum,那麼b,c兩張表要加入下面的級聯sql,不然在是無法刪除a,b,c表的記錄的 alter table b add const...

製作DNN模組的資料庫安裝和解除安裝指令碼

1 當模組開發完成資料表和儲存過程就都已經完成了。注意 在編寫儲存過程時將表名和儲存過程名前面加上 dbo.否則隨後替換的時候可能要增加工作量 2.在sql server企業管理器中生成相關物件的sql指令碼 3.製作版本.sqldataprovider檔案 a.將生成的資料庫表和存貯過程及函式等的...