Alachisoft NCache SQLCACHEDEPTINCY通过存储过程增加了依赖性



我们正在尝试实现SQLCACHEDEPTINCE,并且在通过存储过程添加依赖项的同时,将其添加到缓存后立即将对象删除。

我们使用了以下链接中提到的数据库同步样本。

http://www.alachisoft.com/resources/samples/

string storedProcName = "dbo.TestStoredProc1";
SqlCmdParams sqlParams = new SqlCmdParams();
sqlParams.Value = prod.ProductID;
//sqlParams.
Dictionary<string, SqlCmdParams> prms = new Dictionary<string, SqlCmdParams>();
prms.Add("ID", sqlParams);
_cache.Add(prod.ProductID.ToString(), item,DSWriteOption.None,null);

item.dependenty = new SQLCachEdependenty(Connstring," select * select * from dbo.state_lookup with state_id =" prod.productId.toString());

Database Synchronizationpublic void OnCacheDataModification(string key, CacheEventArg args)
    {
        switch (args.EventType)
        {
            case EventType.ItemAdded:
                // Key has been added to the cache
                Console.WriteLine(key + " Item Added");
                break;
            case EventType.ItemUpdated:
                Console.WriteLine(key + " Item Updated");
                break;
            case EventType.ItemRemoved:
                break;
        }

我已经添加了项目更改侦听器,并且在进入ItemAdded零件后立即转到ItemRemped部分。仅当数据库中的数据更改时,已删除的项目删除了回电。

SQL Server版本:Microsoft SQL Server 2008 R2(SP2)

Alachisoft Edition:企业试用版

Alachisoft SDK版本:4.9.1.1

在使用NCACHE SQLDEPDENCENT时,您需要查看一些事情,我在下面列出了它们。

•NCACHE SQLDEPTINDEND使用SQL Broker Service,根据通知无效并从缓存中删除项目。请确保您已经启用了数据库的经纪服务,以便在此处提到的步骤中没有任何问题。

•此外,请注意,SQLDIPPENTINCY在您为SQLDEPDENCENT创建查询时所支持的语句有一些限制。由于NCACHE取决于SQL代理,因此NCACHE SQLDIPPenty功能也继承了此限制。主要限制之一是选择语句,即"语句可能不使用星号()或table_name。语法来指定列。"。您的SQLDIpendenty查询应遵循Microsoft提到的所有规则和要求。

•可以在以下MSDN站点上找到有关在SQL Server上创建通知查询的完整列表:-2008-R2/MS181122(V = SQL.105)

•此外,请注意,每当NCACHE SQLDIPPentions未能注册时,相应的项目(添加了依赖项的添加)即时删除,并且在服务器日志中登录了错误消息。请浏览您的服务器日志,您应该能够看到错误条目,说明由于无效的SQL查询,SQL Broker无法建立SQLDIPPENTINCY。

一旦您解决了上述所有项目,您的SQLDEPDETINCE就应该完美地工作。

最新更新