Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.08.11;
Скачать: [xml.tar.bz2];

Вниз

Locking granularity, используемая Jet Access   Найти похожие ветки 

 
AkaSaint   (2003-07-18 23:31) [0]

Как узнать и изменить сабж? Имеется в виду блокировка по записям или по страницам. Я установил свойство провайдера Jet OLEDB:Database Locking Mode в Alcatraz, т.е. включил блокировку по записям. В MSDN написано, что включение блокировки по записям не исключает блокировку по страницам. Тестируя свой сервер приложений с 2-мя клиентами, параллельно изменяющими случайно выбранные записи в одной таблице, я обнаружил, что один из клиентов (К1) получает сообщение Could not update; currently locked в то время, когда второй клиент (К2) изменяет другую запись, причем запись К1 даже раньше в ходе данного тестирования не была ни разу изменена ни одним из клиентов. Из этого я сделал вывод, что Access использует блокировку по страницам. Я нашел в MSDN т.н. "специфичное для провайдера" свойство Jet OLEDB:Locking granularity, где тоже был выбор из блокировки по записями или по страницам. Я уже было готов был кричать "Эврика!", но не тут-то было. Оказалось, что ни ADOConnection, ни ADOTable такого свойства не имеют! (Дельфи 6, Update Pack 2) :-(
В результате истории сей имеются следующие вопросы:
1) Что значит "provider-specific property"?
2) Почему этого свойства у меня нет?
3) Прав ли я, что у меня включена блокировка по страницам?
4) Как проверить, какой тип блокировки используется на самом деле?
5) Как установить блокировку по записям?
Если у вас хватило терпения дочитать до этого места, я вас поздравляю и уже за это благодарю :-)
Интересны любые мысли, соображения, сведения, ссылки и т.д.


 
Тих   (2003-07-19 00:16) [1]

Уф. В целом ответ находится в документации по АДО и св-вам LockType и IsolationLevel. Однакож некий используемый OLEDB провайдер вовсе не обязан реализовывать, _например_, все 4 уровня изоляции SQL-92 ФИЗИЧЕСКИ, он может просто говорить "да, окей, ты присвоил adXactSerializable", хотя черт его знает, что там в движке субд происходит на самом деле, нужно смотреть документацию; то же самое и с блокировкой - MSDN прямо гласит

Providers may not support all lock types. If a provider cannot support the requested LockType setting, it will substitute another type of locking.

Про реализацию Locking в, например, MS SQL Server в его доке написано много, грамотно и подтверждается на опыте (Understanding Locking in SQL Server)

Вот. Это что касается общих св-в и методов ADO. Но. Провайдер может сверх стандарта навесить дополнительных воpможностей, которые устанавливаются через ADODBConnection.Properties. Ну там, ты как разработчик своего провайдера сверх интерфейса, предлагаемого классами АДО, ввёл возможность маршалинга через XML, эту опцию можно будет включить как-нить вроде Connection.Properties["use XML"] := true. Информация о доп. сво-вах Jet (а также о том, как он реализует локинг и пр.) наверное где-нибудь в каком-нибудь MSDN есть.


 
AkaSaint   (2003-07-19 01:23) [2]

Спасибо за ответ, Тих. Но хотелось бы что-нибудь более близкое к моим вопросам и Jet OLEDB:Locking granularity. MSDN я уже перерыл настолько, насколько мог, и ответов на свои вопросы не нашел.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.08.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.007 c
11-33084
Morthan
2002-12-05 08:21
2003.08.11
Как правильно обработать OnKeyDown?


14-33342
Zigs
2003-07-25 11:44
2003.08.11
Как просмотреть какие функции лежат в DLL?


14-33360
Мазут Береговой
2003-07-25 09:02
2003.08.11
Давненько я не был здесь! Как у вас тут все изменилось!


9-33036
SergeN
2003-02-10 11:07
2003.08.11
С чего начать и стоит ли?


1-33210
Yuraz
2003-07-29 11:42
2003.08.11
Возможно ли установить разный шрифт в разных подменю TreeView?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский