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

首頁 > 編程 > .NET > 正文

.NET 2.0 SqlDependency快速上手指南

2024-07-10 13:10:02
字體:
供稿:網(wǎng)友
  本文以sql server 2005上實(shí)現(xiàn)為準(zhǔn),sql server 2000因?yàn)閷?shí)現(xiàn)機(jī)制不同,請(qǐng)查閱相關(guān)資料。

  步驟一:在sql server 2005上執(zhí)行alter database <databasename> set enable_broker;語句讓相應(yīng)的數(shù)據(jù)庫啟用監(jiān)聽服務(wù),以便支持sqldependency特性。

  這條語句最好在數(shù)據(jù)庫未執(zhí)行任何事務(wù)的情況下執(zhí)行。

  步驟二:調(diào)用sqldependency.start(string strconnectionstring)方法,在應(yīng)用程序端啟用依賴監(jiān)聽器。

  該方法的參數(shù)為一個(gè)數(shù)據(jù)庫的連接字符串,該數(shù)據(jù)庫必須已經(jīng)執(zhí)行過步驟一的操作。

  對(duì)于同一連接字符串,若已經(jīng)執(zhí)行過該語句,再次執(zhí)行不會(huì)發(fā)生任何異常,但返回值會(huì)為false.

  如果是在web程序中使用,建議可以將該語句放在application_start事件中執(zhí)行。

  監(jiān)聽是基于數(shù)據(jù)庫的,而依賴才可以基于表或者查詢。

  步驟三:該步驟分別有兩種不同的做法。該階段必須注意步驟。

  方法a:建立連接對(duì)象,再創(chuàng)建一個(gè)sqlcommand實(shí)例,創(chuàng)建sqlcachedependency實(shí)例,在這步之后再調(diào)用command對(duì)象來獲取數(shù)據(jù)(這個(gè)順序很重要)。之后調(diào)用cache的insert語句建立一個(gè)依賴于一個(gè)具體查詢數(shù)據(jù)集的cache項(xiàng)。

sqlconnection conn = new sqlconnection(strconnection);
sqlcommand command = new sqlcommand(strcommandtext, conn);
sqlcachedependency dependency = new sqlcachedependency(command);

// 注冊(cè)方法到委托,該委托是
cacheitemremovedcallback onremove = new cacheitemremovedcallback(removedcallback);

// 新增或修改一條緩存記錄
cache.insert(strcachekey, objappcache, dependency, absoluteexpiration, slidingexpiration, cacheitempriority.default, onremove);

  方法b:建立連接對(duì)象,再創(chuàng)建一個(gè)sqlcommand實(shí)例,最后創(chuàng)建sqldependency實(shí)例。定義sqldependency的委托onchange,當(dāng)數(shù)據(jù)發(fā)生改變時(shí)做出相應(yīng)的處理(比如清除cache)。

sqlconnection conn = new sqlconnection(strconnection);
sqlcommand command = new sqlcommand(strcommandtext, conn);
sqlcachedependency dependency = new sqlcachedependency(command);
dependency.onchange += new onchangeeventhandler(dependency_onchange);

  注意事項(xiàng):

  不知道是不是還存在bug,我在項(xiàng)目開發(fā)中遇到一些奇怪的現(xiàn)象。同樣的代碼,在有的機(jī)器上運(yùn)行則能捕捉到變化,有的則完全沒反應(yīng);也有時(shí)會(huì)出現(xiàn)cache剛建立就反復(fù)發(fā)生依賴改變的事件。偶爾cache還會(huì)數(shù)據(jù)發(fā)生變化卻不引發(fā)事件。

  但從最終項(xiàng)目實(shí)施的情況看,似乎都只是某些機(jī)器環(huán)境造成的不確定因素?這個(gè)無法確定。不過起碼數(shù)據(jù)庫端是否正常啟用,可以通過sql server profiler來查看監(jiān)視。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 抚远县| 富顺县| 丰原市| 会宁县| 滨州市| 卢氏县| 泰兴市| 平度市| 岳西县| 开化县| 威宁| 阳高县| 沙洋县| 土默特右旗| 宕昌县| 江都市| 惠东县| 九龙城区| 仁化县| 玛纳斯县| 侯马市| 扎兰屯市| 淮滨县| 五大连池市| 永平县| 石柱| 麻城市| 宣武区| 施秉县| 安福县| 吴桥县| 化州市| 河北省| 满洲里市| 连城县| 临澧县| 北海市| 穆棱市| 龙井市| 房山区| 鱼台县|