国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 鄂尔多斯市| 浦城县| 苍山县| 祁东县| 海淀区| 革吉县| 务川| 垣曲县| 通州区| 齐河县| 吉隆县| 衡水市| 湖北省| 白水县| 双江| 深州市| 囊谦县| 庆城县| 屯门区| 临泽县| 泸溪县| 平陆县| 美姑县| 都昌县| 武山县| 米林县| 库车县| 贺兰县| 凉山| 桃源县| 措美县| 女性| 河池市| 桑日县| 含山县| 隆子县| 张掖市| 西安市| 西安市| 马关县| 凤山市|