国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

在數(shù)據(jù)庫中提供只讀數(shù)據(jù)

2024-07-21 02:47:26
字體:
供稿:網(wǎng)友
在數(shù)據(jù)庫中提供只讀數(shù)據(jù)

專案需要,需要在數(shù)據(jù)庫中提供一個些數(shù)據(jù),可讓用戶讀取,但不能修改。或許你需要創(chuàng)建一個表,手動添加這些靜態(tài)數(shù)據(jù),這樣的話,用戶有可能直接打開數(shù)據(jù)庫修改。也許你會創(chuàng)建一個table-valued 函數(shù)并加密。解決方案很多,下面Insus.NET使用Clr存儲過程來實現(xiàn),把數(shù)據(jù)直接設(shè)置于CLR程序中。當(dāng)部署于SQL時,如果用戶沒有拿到dll,也許一時無法修改,僅能只讀了。創(chuàng)建一個CLR存儲過程:可復(fù)制代碼:

[Microsoft.SqlServer.Server.SqlPRocedure]    public static void SiteInfor()    {              //創(chuàng)建變量        SqlMetaData Id;        SqlMetaData Name;        SqlMetaData Key;        SqlDataRecord record;        //創(chuàng)建metadata列(字段)。        Id = new SqlMetaData("Id", SqlDbType.Int);        Name = new SqlMetaData("Name", SqlDbType.NVarChar,25);        Key = new SqlMetaData("Key", SqlDbType.NVarChar,30);        //使用metadata列創(chuàng)建一筆新記錄        record = new SqlDataRecord(new SqlMetaData[] { Id, Name, Key });        //為列域賦值。        record.SetInt32(0,1);        record.SetString(1, "DG");        record.SetString(2, "5a01ceba-4168-44a2-a68a-5b430e5ad127");        //將記錄發(fā)送到調(diào)用程序。        SqlContext.Pipe.Send(record);    }
View Code

部署至SQL中,有兩種方式,一是手動在Microsoft SQL Management Studio下進(jìn)行,還有一個是在查詢分析器執(zhí)行SQL語句。兩種方法,均在前面的CLR相關(guān)文章中詳細(xì)提及。部署成功,我們可以在SQL數(shù)據(jù)庫可看到CLR存儲過程:此存儲過程,我們是無法Modify的。試執(zhí)行此存儲過程:

下面內(nèi)容于2015-04-03 09:40分修改或補充:針對最后一段代碼,修改如下:

SqlContext.Pipe.SendResultsStart(record);SqlContext.Pipe.SendResultsRow(record);SqlContext.Pipe.SendResultsEnd();
View Code


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 巴林左旗| 青浦区| 安泽县| 福清市| 崇阳县| 安阳县| 南丹县| 宜州市| 咸阳市| 宁德市| 会泽县| 镇原县| 西乌珠穆沁旗| 宣武区| 科尔| 巴楚县| 明溪县| 康平县| 桃源县| 图木舒克市| 大洼县| 易门县| 溧水县| 武陟县| 德钦县| 望江县| 隆回县| 宁化县| 逊克县| 高唐县| 桐梓县| 阜城县| 永定县| 和顺县| 唐海县| 鲁甸县| 铁力市| 青冈县| 嵊泗县| 嘉鱼县| 西林县|