當前位置:首頁 » 編程語言 » 框架程序集SQL
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

框架程序集SQL

發布時間: 2022-05-04 18:28:44

㈠ 如何更新sql Server里的CLR程序集

這樣大大增強了Sql Server的功能,為編程開發帶來了方便。怎樣創建CLR存儲過程網上的介紹文章已經很多了,本文不討論了。 作者在使用過程中遇到了這樣的問題,就是程序集assembly的更新問題。在Sql Server中程序集不能修改,只能刪了重建。見下圖: 接下來如果想用drop命令把它刪掉,就會出現這個:
由於對象 'IsLegalDate' 引用了 'ZSqlExtend',DROP ASSEMBLY 失敗。原來基於這個程序集肯定要建很多存儲過程和函數,這些對象引用了這個程序集,DROP ASSEMBLY 失敗。可以單擊上圖中「查看依賴關系」。怎麼辦呢?那隻能把引用這個程序集的所有對象都刪掉,這樣一來工作量可就大了,而且重建程序集後還要建這些存儲過程和函數。這些存儲過程和函數也有可能被引用,也刪不掉。這樣我們更新程序集豈不是太麻煩了?筆者想出一個變通的辦法,與廣大網友交流。首先ZSqlExtend的代碼如下,裡面有一個IsLegalDate函數。用VS2008編譯後的文件是ZSqlExtend.dll。using System.Data.SqlTypes;
using System.Data.SqlClient;
using System.Text.RegularExpressions; namespace ZSqlExtend_NS{public class ZSqlExtend_cls{[SqlFunction(DataAccess = DataAccessKind.Read)]
public static bool IsLegalDate(int iyear, int imonth, int iday){bool ild = false;try{DateTime newdate = new DateTime(iyear, imonth, iday);
DateTime dMin = new DateTime(1900, 1, 1);
DateTime dMax = new DateTime(2079, 6, 7);
ild = newdate >= dMin && newdate < dMax;}catch{ild = false;}return ild;
}} //END CLASS }根據這個dll文件在Sql Server中創建程序集和函數:create assembly ZSqlExtend
from 'E:\hs1\ZSqlExtend\bin\ZSqlExtend.dll' with permission_set = Safe;
go CREATE FUNCTION IsLegalDate
(@y int,@m int,@d int)
RETURNS bit
AS EXTERNAL NAME ZSqlExtend.[ZSqlExtend_NS.ZSqlExtend_cls].IsLegalDate;
go 然後再建一個類庫項目,比如我再做一個ZSqlExtend_mmy的類庫項目,用VS2008編譯後的文件是ZSqlExtend_mmy.dll,這個是ZSqlExtend.dll的代替品。把ZSqlExtend.dll的內容在這個再寫一遍,不過這個是假的,所以可以寫成這樣:using System.Data.SqlTypes;
using System.Data.SqlClient;
using System.Text.RegularExpressions; namespace ZSqlExtend_NS{public class ZSqlExtend_cls{[SqlFunction(DataAccess = DataAccessKind.Read)]
public static bool IsLegalDate(int iyear, int imonth, int iday){return true;
} } //END CLASS }把這個「假的」ZSqlExtend_mmy.dll也注冊進Sql Server。create assembly ZSqlExtend_mmy
from 'E:\hs1\ZSqlExtend_mmy\bin\ZSqlExtend_mmy.dll' with permission_set = Safe;go我們的第一步工作就做完了。現在我在項目ZSqlExtend里修改了IsLegalDate,需要重建程序集,就出現了本文一開始的情況。當然你可以先把IsLegalDate刪掉,但是我不能這么做,因為很多表的計算欄位和視圖引用了IsLegalDate。所以我只能讓IsLegalDate和程序集ZSqlExtend脫鉤,然後將程序集ZSqlExtend刪除重建。要想脫鉤就得用那個ZSqlExtend_mmy了,因為它其中的函數簽名和ZSqlExtend完全一樣。函數IsLegalDate是不能刪了,但我們可以修改它,把它改在別的程序集上。Sql Server中執行:alter FUNCTION IsLegalDate
(@y int,@m int,@d int)
RETURNS bit
AS EXTERNAL NAME ZSqlExtend_mmy.[ZSqlExtend_NS.ZSqlExtend_cls].IsLegalDate;goOK,此時程序集ZSqlExtend已經可以刪除重建了,在Sql Server中運行:drop assembly ZSqlExtend;create assembly ZSqlExtend
from 'E:\hs1\ZSqlExtend\bin\ZSqlExtend.dll' with permission_set = Safe;
go當然還要把函數IsLegalDate再改回來alter FUNCTION IsLegalDate
(@y int,@m int,@d int)
RETURNS bit
AS EXTERNAL NAME ZSqlExtend.[ZSqlExtend_NS.ZSqlExtend_cls].IsLegalDate;go這里需要注意2個問題:1、也許你會問,既然要把函數IsLegalDate改掉,讓它和程序集ZSqlExtend無關,何不直接用語句:ALTER FUNCTION [dbo].[IsLegalDate](@y [int], @m [int], @d [int])
RETURNS [bit]beginreturn 1;end哈哈,你會得到如下提示: 無法對 'dbo.IsLegalDate' 進行更改,因為它是不兼容的對象類型。2、為什麼要再編譯個DLL呢?把編譯好的ZSqlExtend.dll改個名那個「假的」不就有了嗎。

㈡ 在網站的框架中,有些提供了在頁面進行資料庫表的列添加功能,那程序是如何完成相應的SQL語句的動態生成

這個似乎不難
添加表的sql語句:alter table 表名 add 列名 數據類型
列名使用參數如@col即可動態生成,至於數據類型可以設置成固定的,如果需要動態生成也可以設置成參數,在頁面用下拉列表形式選擇為參數賦值

㈢ 安裝SQL,microsoft .net framework 出錯,急求!!!!!!!!!!!!

提示信息裡面不是告訴你了,要清楚注冊表值 [HKLM\Software\Microsoft\Fusion!EnableLog]嗎,去注冊表裡面刪除掉,另外,安裝SQL之前也要清理注冊表防止被掛起導致安裝失敗。具體方法是:
在運行窗口輸入regedit,打開注冊表編輯器,在HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager中找到PendingFileRenameOperations,刪除該鍵值,關閉注冊表編輯器。重新安裝SQL Server 2000,此時,就可以正常進入期待的安裝界面了。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager存放的是當前系統會話的快照,而PendingFileRenameOperations記錄的是一個未成功進行的文件更名操作,SQL Server2000在安裝時可能會使用。
如果你還不放心,可以在注冊表裡面搜索一下SQL相關的值,一並刪除掉再安裝。

㈣ SQL安裝中出現.net2框架損壞問題

首先說明一下.net framework 2.0及後面的3.0,3.5,核心組件都是2.0的內容,3.0及3.5隻是在框架2.0的基礎上加了幾個程序集,而.net framework 4.0就不同了。由2.0/3.0/3.5這三個框架產生的中間代碼均面向CLR 2.0。而且.net 框架不同版本間能進行共存。你裝SQL Server 2005時,出現了上面的錯誤提示,只需要上微軟官方下載一個donetfx2.0.exe即可。

㈤ SQL Server 安裝程序遇到以下錯誤:未能載入文件或程序集。

1、你的原始安裝盤有問題,貌似你安裝的是SQL2008或者是SQL2008R2,我以前在網上下載的版本就遇到過類似問題。最後下載正確的就沒問題
2、也可能是你的.Net框架裝的有問題。可以先卸載,再安裝SQL試試

㈥ java程序,SQL語句的問題

根據錯誤提示信息,可以明顯知道是 「學號=getUser」有問題,若你有使用數據層框架的話,則是為對getUser佔位符進行賦值,若沒用框架,則可能是sql語句單引號的緣故(參數為字元類型時,使用單引號進行包圍)。應該可以解決掉bug。
對於不同用戶顯示不同功能的需求,如果要做的完善點的話,可以添加一個許可權控制模塊,網上有很多這類的參考材料,而簡單的解決辦法就是直接寫死在代碼里,驗證是否管理員帳號再決定是否顯示功能

㈦ 在SQL中什麼是程序集

程序集是 .NET Framework 應用程序的主要構造塊。所有託管類型和資源都包含在某個程序集內,並被標記為只能在該程序集的內部訪問,或者被標記為可以從其他程序集中的代碼訪問。程序集在安全方面也起著重要作用。代碼訪問安全系統使用程序集信息來確定為程序集中的代碼授予的許可權集。

㈧ 安裝sql 2005時,安裝程序正在安裝.NET Framework程序集期間遇到錯誤,錯誤為沒有注冊類

沒有碰到這這種錯誤.但感覺應該是注冊表的問題、