Рефераты | Рефераты по информатике, программированию | Блокировки в MS SQL Server 2000 | страница реферата 16 | Большая Энциклопедия Рефератов от А до Я
Большая Энциклопедия Рефератов от А до Я
  • Рефераты, курсовые, шпаргалки, сочинения, изложения
  • Дипломы, диссертации, решебники, рассказы, тезисы
  • Конспекты, отчеты, доклады, контрольные работы

  • Если запустить этот пример, он, как и предыдущий, приведет к ошибке доступа к памяти. Дело в том, что изначально создается массив размером в 20 элементов, а в цикле инициализации используется значение 40, и на 21 элементе мы получим ошибку доступа.

    Проблема повторного чтения состоит в том, что между операциями чтения в одной транзакции другие транзакции могут беспрепятственно вносить любые изменения, так что повторное чтение тех же данные приведет к другому результату.

    Для поддержки третьего уровня изоляции в код изменений вносить не надо! :) Необходимо лишь не снимать разделяемые блокировки до конца транзакции. Так как метод, приведенный ниже, снимает блокировку только на уровне READ_COMMITTED:

     void RemoveShared(int level)

     {

      if (level == READ_COMMITTED){

       RemoveSharedLock();  

      }

     }

    нам нужно лишь добавить новую константу в перечисление типов блокировок.

     enum {READ_UNCOMMITTED,READ_COMMITTED,REPEATABLE_READ};

    Теперь, если в приведенном выше примере изменить константу READ_COMMITTED на REPEATABLE_READ в качестве параметра GetObject, код заработает правильно и без ошибок.


    Рекомендуем скачать другие рефераты по теме: решебник по физике, украинские рефераты.



    Предыдущая страница реферата | 11  12  13  14  15  16  17  18  19  20  21 |




    Поделитесь этой записью или добавьте в закладки

       




    Категории:



    Разделы сайта




    •