Green-sell.info

Новые технологии
3 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Файл блокировки access

Access. Особенности работы в многопользовательском режиме.

После создания приложения Access оно покидает среду разработки и направляется для использования заказчиками. При этом могут возникнуть проблемы, связанные с работой этого приложения в многополь­зовательской среде. Наиболее серьезной из этих проблем является разрешение конфликтов, возникающих при одновременном обращении нескольких пользователей к записям базы данных Access.

Важно помнить, что работа с базой данных в многопользовательской среде может вызывать пробле­мы, связанные с блокировкой данных и конфликтами доступа к ним. Подавление сообщений об ошиб­ках, недостаточное внимание к подобным вопросам либо надежда на благоприятное стечение обстоятельств не решает проблему. Несмотря на кажущуюся сложность работы в многопользовательской среде, понять механизм действия блокировки данных и способ обслуживания механизмом Jet нескольких пользователей достаточно просто. Пренебрежение подобными вопросами, как правило, приводит к возникновению бо­лее сложных проблем, затрагивающих пользователей, клиентов и влияющих на репутацию разработчика. Если для приложения не предусмотрено эффективное решение вопросов работы в многопользовательской среде, при работе с ним неизбежно будут возникать следующие проблемы:

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

• Изменения существующих записей не сохраняются. Пользователь может даже не заметить, что вне­сенные им изменения не сохранились. Однако в дальнейшем может оказаться, что либо таблица ито­говых данных отсутствует, либо в инвентарном списке слишком много элементов, или может случиться так, что заказ важного клиента будет отправлен по неверному адресу. Подобные серьез­ные проблемы вполне могут оказаться не выявленными вовремя. Как правило, от них страдают посторонние люди.

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

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

Для обслуживания нескольких пользователей приложение Access необходимо на файловом уровне кон­фигурировать по-разному. Каждый способ имеет свои преимущества и недостатки, некоторые из них пе­речисляются ниже.

• Сетевое размещение. В данной конфигурации единый MDB-файл располагается на сетевом серве­ре, и пользователи получают доступ к базе данных при обращении к серверу. Данные и выполня­емые модули могут содержаться в едином MDB-файле либо размещаться на файловом сервере в виде нескольких отдельных файлов. Преимуществом данной конфигурации является простота поддержки, поскольку при необходимости в обновлении нуждается лишь выполняемый файл. Однако, поскольку все формы, отчеты, модули, запросы, ЕХЕ-файлы Access, а также все библиотеки DLL и т.п. должны передаваться по сети на рабочую станцию, сетевой трафик неоправданно возрастает, а производительность значительно снижается. Вероятно, в подобных конфигурациях следует исполь­зовать связанные формы. Далее рассматриваются проблемы связывания форм с данными и возни­кающие при этом конфликты доступа.

• Разделенная база данных с размещенными в сети данными. Такая конфигурация по традиции на­зывается конфигурацией удаленной базы данных (отметим, что значение слова «удаленная» в чрез­вычайно динамичную эпоху Internet постепенно меняется и вскоре может устареть), поскольку данные отделены от выполняемого модуля или программного кода, хотя механизм баз данных и остается локальным. В отличие от конфигурации клиент-сервер, механизм баз данных Access на пользовательском ПК получает, обрабатывает, блокирует и снимает блокировку с данных, находя­щихся в MDB-файле на сетевом сервере. Работа в такой конфигурации зависит от механизмов баз данных одновременно работающих пользователей, а также от возможностей файлового сервера, касающихся поддержания сетевого графика. До настоящего времени при размещении приложений баз данных Access предпочтение отдают именно этому методу. Его преимуществом является высо­кая производительность и управляемость при корректном использовании. Поскольку при размеще­нии данных в сети по каналам связи передаются только они, сетевой трафик значительно снижается. Основной недостаток данной конфигурации заключается в том, что на каждом клиентском ПК необходимо устанавливать Access и выполняемый MDE- (скомпилированный вариант базы данных MDB) либо MDB-файл, что осложняет поддержку приложения. Тем не менее, существуют спосо­бы решения подобной проблемы.

• Репликация. При использовании схемы репликации пользователи совместно обрабатывают данные, хотя данные на самом деле не являются общими, как это имеет место в схемах сетевого распре­деления или в разделенных базах данных. В схеме репликации каждый пользователь или небольшая группа пользователей имеет собственную копию данных, которые посредством механизма репликации Jet синхронизируются с другой базой или базами данных. Одно из преимуществ такой схемы, когда каждому пользователю предоставляется копия данных, состоит в полном исключении проблемы блокировки, но вместо них возникают проблемы репликации, степень сложности которых являет­ся практически такой же. Другим значительным преимуществом репликации является возможность асинхронного доступа к данным для отключенных от сети пользователей. Вместе с тем существует еще один недостаток такой схемы: при совместном использовании источника данных даже небольшой группой пользователей все же существует возможность возникновения как конфликтов доступа, так и проблем репликации.

• Конфигурация клиент-сервер. В Access 2000 появилась новая возможность создания клиент-сервер­ных приложений на базе проекта Microsoft Access. В такой конфигурации удаленными являются как данные, так и механизм баз данных. Если данными управляет SQL Server, Oracle или какой-либо иной сервер баз данных, расположенный на центральном компьютере, он также решает вопросы блокировки и проблемы работы в многопользовательской среде. Это не означает, что разработчик избавлен от необходимости решения всех связанных с ними задач, просто ему приходится иметь дело с иными наборами свойств, возможностей и правил. Основными преимуществами такой конфигу­рации являются высокая производительность, стабильность, возможность обслуживания большого количества пользователей и выполнения множества задач. Наибольший недостаток данной конфи­гурации состоит в высокой стоимости и значительной сложности.

В данной главе рассматриваются вопросы, которые являются общими для сетевых конфигураций: схе­мы разделенной базы данных и реализации архитектуры клиент-сервер. О репликации рассказывается в главе 22.

Читать еще:  Свойства формы access

При использовании Access существует ряд установок на уровне базы данных (для форм, запросов, наборов записей) и на уровне выполняемого кода, которые требуют взаимного координирования в це­лях обеспечения надежного обслуживания приложением нескольких пользователей. В различных частях приложения представлены почти все обсуждаемые в главе темы. Как для разных приложений, так и в пределах одной программы возможно применение разных технологий, а также их комбинаций. Основой организации работы в многопользовательской среде является планирование, прогнозирование и тестирование.

Access и способы блокировки в Jet

Механизм Jet имеет схему блокировки, которая позволяет эффективно обслуживать несколько пользо­вателей. При использовании Jet с Access, а не с VB или каким-либо иным инструментом разработки необходимо учитывать, что некоторые действия выполняются по умолчанию. Данный раздел посвящен изучению этих вопросов.

Основные сведения о блокировке

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

В диалоговом окне Options (Параметры), отображающемся при выполнении команд меню Tools Options (Сервис / Параметры), во вкладке Advanced (Другие) имеется параметр Default open mode (Режим откры­тия, определенный по умолчанию). Здесь можно определить режим открытия базы данных, т.е. должна ли она открываться для монопольного доступа (только для одного пользователя на весь сеанс работы) или для общего доступа.

Если выбран режим Exclusive (монопольный доступ), базу данных имеет право открывать только один пользователь. В этом случае Access изменяет заголовок LDB-файла, тем самым блокируя его (подробнее об этом см. в разделе «LDB-файл») и запрещая доступ к данным для всех других пользователей. Очевид­но, для многопользовательского приложения такая настройка использоваться не должна. Однако такие процедуры, как сжатие и восстановление, следует выполнять над базой данных, открытой для монополь­ного доступа.

Режим Shared (Общий доступ) позволяет открывать базу данных нескольким пользователям одновре­менно. При этом Access в момент открытия базы данных заносит информацию о подключившихся к ней пользователях в LDB-файл и задействует механизм блокировки и освобождения страниц и строк.

Эти и другие параметры можно задавать в командной строке во время запуска приложения Access. Некоторые из них перечислены в табл. 1.

Таблица 1 Параметры командной строки при запуске Access

Файл блокировки access

ситуация: есть определенные справочные сведения (порядка 10 МБ) в формате MS ACCESS. для просмотра (подчеркиваю для просмотра) написал утилитку использующую Jet 4.0. все это дело записываем на CD RW и при попытке открыть базу получаем сообщение «Блокировка файла не возможна». в ConnectionString пишу Mode=Read;

PS. копирование на жесткий диск пожалуйста не предлагать — за день приходится обойти не 1-2 компа, а побольше — надоедает за собой удалять :)))


sniknik ( 2002-08-23 15:09 ) [1]

Блокировка файла невозможна. (Ошибка 3050)
Операционная система запрещает ядру Microsoft® Jet создание файла блокировок (.LDB) в том каталоге, где находится файл базы данных (.MDB). Для открытия базы данных необходимо обладать привилегиями записи в каталог, содержащий эту базу данных. Кроме того, данная ошибка может возникнуть при использовании средства пассивного завершения работы/управления подключением, когда база данных открыта в монопольном режиме.

Mode=Read? поставь Share Deny None а то может ты другим юзерам кислород перекрываеш и ошибка от них.


savva ( 2002-08-23 16:33 ) [2]

да не.. пользователей тут мало.. одна моя программа..
а вот то что необходимо обладать привилеггиями записи в каталог — это уже хуже. на компакт особо не попишешься :))

никак этот неприятный для меня момент обойти нельзя? я хочу тока читать.


sniknik ( 2002-08-23 16:51 ) [3]

в том то и дело он на компакт писать не должен а пишет туда где MDB лежит.
Или он у тебя на CD (база)? и ты один? тогда Mode=Share Exclusive пробуй он в этом случае файл не создает (реально попробовать на CD сам понимаеш не могу может еще чего вылезет).


savva ( 2002-08-26 09:41 ) [4]

я вернулся после выходных :)))
да, база на CD и из пользователей я один.
ошибка изменилась, но добиться результата не получилось: теперь говорит что файл уже открыт другим пользователем для монопольного доступа или требуется разрешение на просмотр данных.


sniknik ( 2002-08-26 10:28 ) [5]

я тоже :-), дома не халява дома жалко посему инетом почти не пользуюсь.

добится чтения базы с CD можно, сам Access читает только предупреждение дает типа только для чтения (я тут откопал базу на сидироме, проверил).
добьешся напиши как.


sniknik ( 2002-08-26 10:42 ) [6]

Кстати до меня тут дошло, раз база на CD есть то и подключится к ней можно попробовать. И. Без проблем. ставь тока Share Deny None и боле ничаво. у меня получилось.


savva ( 2002-08-26 10:56 ) [7]

а у меня проблемы.. перепробовал все константы для Mode.
если не секрет:
1) атрибуты у файла базы только ReadOnly?
2) может ли повлиять не закрытая сессия компакта — пока не исравлю программу — не охота сессию закрывать :))


savva ( 2002-08-26 10:57 ) [8]

и еще:
база запаролена?

если не военная тайна — мона поглядеть ConnectionString? может я ее не так формирую..


savva ( 2002-08-26 12:04 ) [9]

либо такая фигня тока у меня. нашел на компакте с делфи базу акцесс — подключаюсь первый раз из делфи в режиме разработке — все нормально.. компилю, запускаю — фига с маслом.. ща как истинный программист попробую выйти и зайти :))


sniknik ( 2002-08-27 10:22 ) [10]

Блокировка записей в Microsoft Access 2007 — ошибка 3218

При работе в Microsoft Access 2007 возникла проблема — хоть и небольшая, но досадная 🙂

  • используется DAO
  • используется объект Database (как CurrentDb)
  • для организации транзакций, конечно, используется Workspace (как DBEngine.Workspaces(0))
  • в транзакции сначала вносятся исправления в строки при помощи Recordset, затем запускается запрос (при помощи QueryDef) на изменение
  • при выполнении запроса возникает ошибка 3218 «Обновление невозможно;установлена блокировка.» («Could not update; currently locked»), хотя все изменения проходят в рамках одной транзакции 🙁
Читать еще:  Разработка приложений access

Dim ws as Workspace, db as Database, rs As Recordset, qd As QueryDef
Dim UpdSQL As String

Set db = CurrentDb
On Error GoTo Finally1

Set ws = DBEngine(0)

ws.BeginTrans
On Error GoTo Except1

Set rs = db.OpenRecordset(«Table1», dbOpenDynaset)

rs.FindFirst «[ID] = 1»

If rs.NoMatch Then
rs.AddNew
rs![ID] = 1
rs![F1] = 2
Else
rs.Edit
End If
rs![F1] = rs![F1] + 100
rs.Update
rs.Close

UpdSQL = «Update Table1 Set [F2] = [F1] + 200»

Set qd = db.CreateQueryDef(«», UpdSQL)

qd.Execute dbFailOnError
qd.Close

Except1:
On Error GoTo Finally1
ws.Rollback

Finally1:
On Error GoTo Err_
db.Close

Err_:
‘ обработка ошибки
Resume Exit_

Что характерно — если поменять местами выполнение запроса и обновление записей при помощи Recordset’а (т.е. сначала запрос, потом Recordset), то всё проходит без ошибок 8-( — но тут последовательность выполнения с точки зрения логики была важна.
Как выход — можно всё переписать только на запросах, без использования Recordset’ов — в этом случае тоже всё работает. Но это было бы слишком трудоемко — много таких мест в коде.

Выход оказался прост, но не очевиден — в настройках был установлен флаг Открытие баз данных с использованием блокировки на уровне записей. Нужно этот флаг СНЯТЬ (. ) — и всё работает без ошибок! Хотя, как я понимаю: по умолчанию блокировка записей выполняется страницами, а этот параметр должен включать блокировку по записям — т.е. вроде как «снижать» жёсткость блокировок. 8-(
Находится этот параметр здесь: кнопка Меню / Параметры Access / пункт Дополнительно / раздел Дополнительно.

Также стоит проверить, что другие параметры установлены в значения:

  • Режим открытия по умолчанию = общий доступ
  • Блокировка по умолчанию = отсутствует

Управление транзакциями и блокировками в базах данных , страница 4

Также в некоторых СУБД можно устанавливать интервал времени time out – превышение лимита времени. При введении такого интервала инструкция SQL заканчивается неуспешно и возвращает код ошибки, если она не смогла установить требуемую блокировку в течение определенного промежутка времени.

Администратор БД может вручную устанавливать типы, уровни блокировок и время time out в зависимости от прикладной программы.

Режимы блокировки для конкретного приложения (программы) можно также устанавливать программно с помощью соответствующих методов объекта Recordset языка VBA. При этом в конкретном случае будут уже действовать установки программы, а не общие установки окна Параметры. Этот вариант обеспечивает более гибкие возможности блокировки, но в данном курсе он только упоминается, подробно не рассматривается.

Microsoft Access является многопользовательской СУБД. В ней имеются определенные механизмы блокировок для поддержания совместного доступа к данным и разрешения конфликтов при доступе к данным.

Существует три типа блокировки записей в базе данных Access.

· Блокировка отсутствует. Значок этого режима . Если два пользователя одновременно вносили изменения в запись, то тот, кто сохраняет изменения первым, может это сделать. Когда второй пользователь попытается сохранить свои изменения, то появляется диалоговое окно « Конфликт записи», в котором ему предлагается или сохранить свою запись, уничтожив изменения первого пользователя, или скопировать свои изменения в буфер, или отменить свои изменения. Этот вариант называют оптимистической блокировкой, поскольку она основывается на предположении, что при редактировании конфликта с его альтернативными исходами не произойдет.

· Блокировка изменяемой записи.
Access блокирует изменяемую в данный момент запись, не позволяя изменять ее другим пользователям. Заблокированными могут оказаться также записи, расположенные рядом на диске. Если другой пользователь попытается изменить заблокированную запись, у не

го появится маркер заблокированной записи .

Этот вариант называют пессимистической блокировкой, поскольку предполагается, что конфликт обязательно произойдет. Недостаток: длительность блокировки не ограничена, блокировка снимается только по окончании транзакции.

· Блокировка всех записей.
Microsoft Access блокирует все записи формы или объекта в режиме Таблицы, поэтому другие пользователи не могут изменить или заблокировать записи. Этот параметр накладывает жесткие ограничения и явно снижает производительность.

Чтобы установить параметры блокировки записей необходимо:

1. Выбрать команду Office → Параметры Access. Появится диалоговое окно Параметры Access.

2. Раскрыть вкладку Дополнительно, раздел Дополнительно.

В группе Режим открытия по умолчанию можно выбрать режим Общий доступ или режим Монопольный доступ — открытие существующей базы данных для монопольного использования одним пользователем.

В группе Блокировка по умолчанию устанавливается необходимый переключатель.

Существует возможность выбора одного из трех уровней блокировки:

  • Отсутствует.
  • Блокировка изменяемой записей. Блокируется только редактируемая запись.
  • Блокировка всех записей. Блокируются все записи таблицы, отображаемые в форме или таблице.

Период обновления (с) Число секунд, после которых Microsoft Access автоматически обновит записи в режиме таблицы или формы.

Число повторов обновления Количество попыток, когда Microsoft Access пытается сохранить измененную запись, заблокированную другим пользователем. Возможные значения от 0 до 10. Значение по умолчанию: 2.

Установленные параметры начнет действовать, когда база данных будет открыта заново с помощью команды Файл, Открыть.

Если нужна блокировка на уровне записей при открытии БД, то нужно установить флажок Открытие баз данных с использованием блокировки на уровне записей. Если необходима блокировка по умолчанию на уровне страниц, то этот флажок нужно сбросить.

Справка Access: статья «Категория «Дополнительные» («Параметры Access»)».

Кроме этих вариантов блокировки записей имеется ещё один метод, заключающийся в установки нужного режима работы с данными в форме. Для этого нужно открыть форму в режиме конструктора и на вкладке Данные Окна свойств для свойства Блокировка записей выбрать одну из опций блокировки: отсутствует, всех записей, изменяемой записи.

Контрольные вопросы и упражнения

    1. Сформулируйте определение транзакции. Приведите примеры транзакций.
    2. Как выполняются транзакции в языке SQL?
    3. Назовите и поясните смысл параметров транзакций? Как установить значения параметров?
    4. Охарактеризуйте каждый из уровней изоляции транзакций:
      READ INCOMMITED, READ COMMITED, REPEATABLE READ, SERIAIZABLE.
    5. Что такое журнал транзакций? Какие поля он содержит? Для чего и как он используется?
    6. Для чего в СУБД используются блокировки данных при обработке транзакций?
    7. Назовите и охарактеризуйте используемые уровни блокировок?
    8. Как устанавливаются режимы блокировки данных в СУБД MS ACCESS?
  • АлтГТУ 419
  • АлтГУ 113
  • АмПГУ 296
  • АГТУ 266
  • БИТТУ 794
  • БГТУ «Военмех» 1191
  • БГМУ 171
  • БГТУ 602
  • БГУ 153
  • БГУИР 391
  • БелГУТ 4908
  • БГЭУ 962
  • БНТУ 1070
  • БТЭУ ПК 689
  • БрГУ 179
  • ВНТУ 119
  • ВГУЭС 426
  • ВлГУ 645
  • ВМедА 611
  • ВолгГТУ 235
  • ВНУ им. Даля 166
  • ВЗФЭИ 245
  • ВятГСХА 101
  • ВятГГУ 139
  • ВятГУ 559
  • ГГДСК 171
  • ГомГМК 501
  • ГГМУ 1966
  • ГГТУ им. Сухого 4467
  • ГГУ им. Скорины 1590
  • ГМА им. Макарова 299
  • ДГПУ 159
  • ДальГАУ 279
  • ДВГГУ 134
  • ДВГМУ 408
  • ДВГТУ 936
  • ДВГУПС 305
  • ДВФУ 949
  • ДонГТУ 497
  • ДИТМ МНТУ 109
  • ИвГМА 488
  • ИГХТУ 130
  • ИжГТУ 143
  • КемГППК 171
  • КемГУ 507
  • КГМТУ 269
  • КировАТ 147
  • КГКСЭП 407
  • КГТА им. Дегтярева 174
  • КнАГТУ 2909
  • КрасГАУ 345
  • КрасГМУ 629
  • КГПУ им. Астафьева 133
  • КГТУ (СФУ) 567
  • КГТЭИ (СФУ) 112
  • КПК №2 177
  • КубГТУ 138
  • КубГУ 107
  • КузГПА 182
  • КузГТУ 789
  • МГТУ им. Носова 367
  • МГЭУ им. Сахарова 232
  • МГЭК 249
  • МГПУ 165
  • МАИ 144
  • МАДИ 151
  • МГИУ 1179
  • МГОУ 121
  • МГСУ 330
  • МГУ 273
  • МГУКИ 101
  • МГУПИ 225
  • МГУПС (МИИТ) 636
  • МГУТУ 122
  • МТУСИ 179
  • ХАИ 656
  • ТПУ 454
  • НИУ МЭИ 640
  • НМСУ «Горный» 1701
  • ХПИ 1534
  • НТУУ «КПИ» 212
  • НУК им. Макарова 542
  • НВ 778
  • НГАВТ 362
  • НГАУ 411
  • НГАСУ 817
  • НГМУ 665
  • НГПУ 214
  • НГТУ 4610
  • НГУ 1992
  • НГУЭУ 499
  • НИИ 201
  • ОмГТУ 301
  • ОмГУПС 230
  • СПбПК №4 115
  • ПГУПС 2489
  • ПГПУ им. Короленко 296
  • ПНТУ им. Кондратюка 119
  • РАНХиГС 186
  • РОАТ МИИТ 608
  • РТА 243
  • РГГМУ 117
  • РГПУ им. Герцена 123
  • РГППУ 142
  • РГСУ 162
  • «МАТИ» — РГТУ 121
  • РГУНиГ 260
  • РЭУ им. Плеханова 122
  • РГАТУ им. Соловьёва 219
  • РязГМУ 125
  • РГРТУ 666
  • СамГТУ 130
  • СПбГАСУ 315
  • ИНЖЭКОН 328
  • СПбГИПСР 136
  • СПбГЛТУ им. Кирова 227
  • СПбГМТУ 143
  • СПбГПМУ 146
  • СПбГПУ 1598
  • СПбГТИ (ТУ) 292
  • СПбГТУРП 235
  • СПбГУ 577
  • ГУАП 524
  • СПбГУНиПТ 291
  • СПбГУПТД 438
  • СПбГУСЭ 226
  • СПбГУТ 193
  • СПГУТД 151
  • СПбГУЭФ 145
  • СПбГЭТУ «ЛЭТИ» 379
  • ПИМаш 247
  • НИУ ИТМО 531
  • СГТУ им. Гагарина 113
  • СахГУ 278
  • СЗТУ 484
  • СибАГС 249
  • СибГАУ 462
  • СибГИУ 1654
  • СибГТУ 946
  • СГУПС 1473
  • СибГУТИ 2083
  • СибУПК 377
  • СФУ 2423
  • СНАУ 567
  • СумГУ 768
  • ТРТУ 149
  • ТОГУ 551
  • ТГЭУ 325
  • ТГУ (Томск) 276
  • ТГПУ 181
  • ТулГУ 553
  • УкрГАЖТ 234
  • УлГТУ 536
  • УИПКПРО 123
  • УрГПУ 195
  • УГТУ-УПИ 758
  • УГНТУ 570
  • УГТУ 134
  • ХГАЭП 138
  • ХГАФК 110
  • ХНАГХ 407
  • ХНУВД 512
  • ХНУ им. Каразина 305
  • ХНУРЭ 324
  • ХНЭУ 495
  • ЦПУ 157
  • ЧитГУ 220
  • ЮУрГУ 306
Читать еще:  Sql в access

Полный список ВУЗов

Чтобы распечатать файл, скачайте его (в формате Word).

Открыть MS Access с строки подключения OLEDB и не имеют доступа создать файл блокировки .ldb

У меня есть программа в C#, который использует базы данных MS Access, и я использую OleDb для подключения и делать запросы на этой базе данных. Моя проблема заключается в том, что у меня есть некоторые важные данные в базе данных, и я не хочу, чтобы выглядеть как Access БД. Я изменил расширение, но когда я открываю его, он по-прежнему создает файл блокировки .ldb, используемый Access. Я хочу, чтобы иметь БД не создать файл блокировки.

Я прочитал много постов по этому вопросу, и это звучит, как если бы я открыть БД в монопольном режиме, он не будет создавать файл .ldb. Тем не менее, до сих пор, я не нашел строку соединения для OleDb, что позволяет мне указать эксклюзивный доступ к БД. Объект OleDbConnection в C# не имеет ни один из членов «Mode» либо, поэтому установка монопольного доступа таким образом это может быть и речи.

Если у кого есть какие-либо строки соединения, которые могут открыть БД в монопольном режиме, или если кто-нибудь знает другой способ избежать создания .ldb файла блокировки в Access, помощь была бы оценена.

6 ответов

Возможно, для Вашего проекта будут необходимы бесплатные векторные карты. На нашем сайте представлены карты для всех стран.

Вы не можете скрыть, что это база данных Access. Любой желающий может открыть файл в шестнадцатеричном редакторе (или даже просто блокнот) и увидеть строку типа » Standard Jet DB «(Office 2000/XP/2003) или» Standard ACE DB «(Office 2007), глядя прямо на них. Даже если они не знают, что это означает, что Google будет сказать им достаточно скоро. Вы используете мог менее общую базу данных, но они будут иметь аналогичные недостатки.

Если вы действительно хотите безопасности, вы будете иметь, чтобы зашифровать файл базы данных и использовать двигатель, который позволит вам сохранить расшифрованную версию в памяти (IIRC SQLite поддерживает это, или скоро будет) или использовать двигатель, который поддерживает шифрование изначально. Даже тогда, вы можете иметь проблемы, если баран выгружаться на диск или если другой процесс «нюхает» баран вашего приложения.

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

Я бы рекомендовал использовать SQLite или другой вариант без доступа, если вы хотите избежать блокировки файлов.

Попытка избежать блокировки файлов трудно в лучшем случае. Даже если открыть файл в монопольном режиме, JET создает эти файлы в разы.

Если вы пытаетесь сохранить конфиденциальные данные, и вы хотите, чтобы «скрыть» тип файла, еще один хороший вариант VistaDB. Это один файл базы данных, но позволяет полное шифрование БД. Это, вероятно, будет более эффективным подходом, чем просто пытается замаскировать тот факт, вы используете JET.

Установка SQL Server 2008 Express, используйте мастер укрупняются в Access, выберите ваш Экспресс экземпляр.

У меня есть несколько баз данных с Эксклюзивным флагом, и я все еще получаю .ldb файлов, созданные каждый раз, когда я открываю один. Если вы действительно беспокоитесь о безопасности, пришло время перейти к «взрослым» базам данных.

Вы также могли бы потенциально использовать SQL Server Compact, чтобы сделать это. Это бесплатно и часть Visual Studio. Он активно используется Microsoft в целом ряде продуктов, в том числе Windows Live.

Ссылка на основную публикацию
Adblock
detector