zoukankan      html  css  js  c++  java
  • c#依赖文件缓存

            public  void RemovedCallbackRole(string key, object value, CacheItemRemovedReason reason)
            {
                // 在应用程序启动时运行的代码
                BLL.JUESE bll = new BLL.JUESE();
                //显示当前时间,以便判断是否为缓存中页面
                //缓存依赖于文件TextFile.txt
                //string fileDependencyPath = "F:\View\code\cm1test\Web\TextFile.txt";
                // 设置缓存的过期时间为120秒。
                DataTable dt = new DataTable();
                dt = bll.GetList(" isdel='0' ");
                CacheItemRemovedCallback onRemove = new CacheItemRemovedCallback(RemovedCallbackRole);
                //rolefile 文件物理地址
                objCache.Insert("role", dt, new CacheDependency(rolefile), Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration, CacheItemPriority.High, onRemove);
    
    
            }

    在应用程序的Global文件中声明  Cache objCache = null;

      void Application_Start(object sender, EventArgs e)
        {
                // 在应用程序启动时运行的代码
                objCache = HttpRuntime.Cache;
                RemovedCallbackRole(null, null, 0);
    
        }
    
        void Application_End(object sender, EventArgs e)
            {
                //  在应用程序关闭时运行的代码
                HttpRuntime.Cache.Remove("role");
            }

    在ORacle数据库中创建触发器,当角色表变动的时候更新依赖的文件内容

    创建一个directory:
    
    create or replace directory FILEPATH as '依赖文件的路径';
    grant read,write on directory FILEPATH to 数据库用户;
    
    例如:
    create or replace directory FILENAME as 'C:cc';
    
    grant read, write on directory FILENAME to FLZD
    
    
    创建触发器:

    CREATE OR REPLACE TRIGGER "TEST_ROLE" AFTER
    INSERT
    OR UPDATE
    OR DELETE OF "NAME","ROLETYPE" ON "USER"."ROLE"
    DECLARE
    filehandle utl_file.file_type;
    BEGIN
    --第三个参数为打开模式,包括'r', 'w', 'a' 'rb', 'wb', 'ab'六种
    --'r':读文件,一定要保证有该文件,不然会报UTL_FILE.INVALID_PATH异常
    --'w':写文件,没有该文件的话会自动添加;有的话会覆盖
    --'a':追加文件,一定要保证有该文件,在已有文件内容后追加内容
    --带有'b'后缀的为使用byte模式,BLOB与VARCHAR2不一样,BLOB打开时一定要用带有'b'后缀的模式
    filehandle := utl_file.fopen('FILENAME','HELLO.txt','w'); --打开文件
    utl_file.put_line(filehandle,'Hello Oracle!');--写入一行记录
    utl_file.put_line(filehandle,to_char(SYSDATE,'yyyy-mm-dd hh24:mi:ss'));
    utl_file.fclose(filehandle);--关闭句柄
    END;

     
     
  • 相关阅读:
    Java基础之单元测试与包装类
    Java基础之多态性
    Java基础之继承性与super
    Java 基础之方法的重写
    LeetCode 【困难】数据库-第579:查询员工的累计薪水
    LeetCode 【困难】数据库-第618:学生地理信息报告(分组行列转换)
    python 合并指定的excel表中的sheet中的行。 去重,留唯一
    LeetCode 【困难】数据库-第569:员工薪水中位数
    LeetCode 【困难】数据库-第571:给定数字的频率查询中位数
    LeetCode 【困难】数据库-第185:部门工资前三高的所有员工
  • 原文地址:https://www.cnblogs.com/bweb/p/4848355.html
Copyright © 2011-2022 走看看