• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 自動修改Cache中的數據

    發表于:2007-06-30來源:作者:點擊數: 標簽:
    原理: 當數據庫中的數據更新時,使用觸發器調用外部程序修改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:\.netpub\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, FileAclearcase/" target="_blank" >ccess.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")));

    }

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>