Несколько активных наборов результатов в NCache

Я оцениваю NCache с последних нескольких недель. Му вопрос специфичен для методов запроса данных кэша. Я ищу что-то похожее на метод 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 для запроса данных кэша?


person The Mitra Boy    schedule 14.06.2016    source источник
comment
Здесь перечислены доступные операторы, поддерживаемые NCache; alachisoft.com/resources/docs/ncache/help/oql- синтаксис.html . Является ли использование ключевого слова TOP необходимым требованием?   -  person Basit Anwer    schedule 14.06.2016
comment
@BasitAnwer Спасибо. TOP не является обязательным требованием. Но дело в отправке нескольких запросов одновременно и извлечении наборов результатов один за другим с помощью чего-то вроде NextResult().   -  person The Mitra Boy    schedule 17.06.2016
comment
NCache не поддерживает команду NextResult, но нельзя ли добиться того же результата, выполняя действия асинхронно?   -  person Basit Anwer    schedule 21.06.2016


Ответы (1)


Здесь перечислены поддерживаемые запросы в NCache;

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

Кроме того, NCache не поддерживает команду NextResult, но у вас может быть собственная реализация для облегчения вашего приложения.

//Псевдокод

  1. Создайте список запросов
  2. Создайте оболочку, обертывающую клиентский API запроса NCache.
  3. Выполнять эти запросы асинхронно
  4. Создайте функцию NextResult в своей оболочке
  5. Выполните синхронизацию в асинхронных потоках, чтобы заблокировать или запустить метод NextResult (Joins или Mutex.wait и т. д.), чтобы дождаться возврата методов операций асинхронного запроса.
  6. Делай, что хотел :)

Это пользовательская реализация. На самом деле вам не нужно этого делать, поскольку NCache полностью находится в памяти, поэтому SQL-запросы уже должны быть очень быстрыми.

Вы можете сделать запрос на функцию на форумах Alachisoft.

person Basit Anwer    schedule 22.06.2016