<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      自動更改Cache中的數據

      [摘要]原理: 當數據庫中的數據更新時,使用觸發器調用外部程序修改Cache依賴的文件,從而使Cache失效。當頁面再次請求Cache時,由于請求的Cache已經失效,所以程序將從數據庫取數據,并更新Cache。 Sql Server 2000中的觸發觸發器是一種特殊的存儲過程,被定義為在對表或者視圖執行...

      原理:

      當數據庫中的數據更新時,使用觸發器調用外部程序修改Cache依賴的文件,從而使Cache失效。當頁面再次請求Cache時,由于請求的Cache已經失效,所以程序將從數據庫取數據,并更新Cache。



      Sql Server 2000中的觸發觸發器是一種特殊的存儲過程,被定義為在對表或者視圖執行INSERT、UPDATE、DELETE操作時執行。



      Cache的Insert方法的一個重載版本

      Public void Insert(string ,object , CacheDependency)

      向Cache中插入具有文件依賴項或鍵依賴項的對象。[Visual Basic]當任何依賴項更改時,該對象即無效,并從緩存中移除。



      代碼:



      Sql Server觸發器:

      CREATE TRIGGER BookList_Cache ON [dbo].[BookList]

      FOR INSERT, UPDATE, DELETE

      AS

      Begin

      DECLARE @CMDS [nvarchar](100)

      --外部程序的路徑。BookList -– Cache依賴的文件名稱,以參數的形式傳遞給外部程序。

      SET @CMDS = 'C:\Inetpub\wwwroot\TryXML\SqlDepend.exe ' + ' BookList'

      Exec Master..xp_cmdshell @CMDS

      End



      SqlDepend代碼:

      SqlDepend是一個控制臺應用程序。



      using System;

      using System.IO;

      using System.Xml;



      namespace SqlDepend

      {

      ///

      /// Class1 的摘要說明。

      ///

      class Class1

      {

      ///

      /// 應用程序的主入口點。

      ///

      [STAThread]

      static void Main(string[] args)

      {

      //

      // TODO: 在此處添加代碼以啟動應用程序

      //

      //Cache依賴文件的具體路徑

      string Path=@"C:\Inetpub\wwwroot\TryXML\Cache\";

      //Cache依賴文件的名稱。

      string _table = args[0].ToString();

      Path = Path + _table + ".xml";

      if(!File.Exists(Path))

      {

      File.Create(Path);

      }

      //產生一隨機數,寫入依賴文件。

      Random _r = new Random( unchecked ( ( int ) DateTime.Now.Ticks ) );

      string _value = _r.Next().ToString();

      StreamWriter _SWriter = new StreamWriter( File.Open( Path, FileMode.Open, FileAccess.Write ) );

      _SWriter.Write( _value );

      _SWriter.Close();

      }

      }

      }



      web文件:

      if(Cache["InvalidataCache"] != null)

      {

      Response.Write("Cache is not Invalided!");

      }

      else

      {

      Response.Write("Cache had Invalided!");

      Cache.Insert("InvalidataCache","Hello World!",

      new CacheDependency(Server.MapPath(@"Cache\Booklist.xml")));

      }




      日韩精品一区二区三区高清