2

自从过去几周以来,我一直在评估 NCache。Mu question 特定于查询缓存数据的技术。我正在寻找类似于下面提到的 ADO.NET 技术的东西。一次提供多个查询并逐个遍历结果集的要求。

以上述方式从数据库中获取的 ADO.NET 代码如下所示。

connetionString = "Data Source=ServerName;Initial Catalog=DatabaseName;User ID=UserName;Password=Password";
            sql = "Select top 2 * from product; select top 2 * from ordermaster; select top 2 * from orderdetails";

            sqlCnn = new SqlConnection(connetionString);
            try
            {
                sqlCnn.Open();
                sqlCmd = new SqlCommand(sql, sqlCnn);
                SqlDataReader sqlReader = sqlCmd.ExecuteReader();
                while (sqlReader.Read())
                {
                    MessageBox.Show ("From first SQL - " + sqlReader.GetValue(0) + " - " + sqlReader.GetValue(1));
                }

                sqlReader.NextResult();

                while (sqlReader.Read())
                {
                    MessageBox.Show("From second SQL - " + sqlReader.GetValue(0) + " - " + sqlReader.GetValue(1));
                }

                sqlReader.NextResult();

                while (sqlReader.Read())
                {
                    MessageBox.Show("From third SQL - " + sqlReader.GetValue(0) + " - " + sqlReader.GetValue(1));
                }

                sqlReader.Close();
                sqlCmd.Dispose();
                sqlCnn.Close();
            }

我们可以在 NCache 中做类似的事情来查询缓存数据吗?

4

1 回答 1

0

此处列出了 NCache 中支持的查询;

http://www.alachisoft.com/resources/docs/ncache/help/oql-syntax.html

除此之外,NCache 不支持NextResult命令,但您可以拥有自己的实现以方便您的应用程序

//伪代码

  1. 创建查询列表
  2. 创建包装 NCache 查询客户端 API 的包装器
  3. 以异步方式执行这些查询
  4. NextResult在 Wrapper 中创建一个函数
  5. 在异步线程上执行同步以阻塞或运行NextResult方法(Joins 或 Mutex.wait 等)以等待异步查询操作方法返回
  6. 做你想做的事:)

它是一个自定义实现。您实际上不需要这样做,因为 NCache 完全是内存中的,因此 SQL 查询应该已经非常快了。

您可以在Alachisoft 论坛上提出功能请求

于 2016-06-22T08:08:00.823 回答