Использование разделенной базы данных Access
Мне нужно увеличить размер разделенной базы данных Access, то есть той, которая в настоящее время разделена между файлами tow mdb, внешним и внутренним интерфейсом. Я вижу много веб-страниц, которые по сути говорят: "Запустите мастер увеличения размера". Мой первый, очень простой вопрос:
Должен ли я запускать этот мастер в моем внешнем mdb или моем внутреннем mdb?
Я предполагаю, что не хочу связывать основной сервер mdb -> backend mdb -> sql. Должен ли я запустить мастер на бэкэнде mdb, а затем во внешнем mdb изменить связанные таблицы так, чтобы они указывали на сервер sql, а не на бэкэнд mdb? Если так, то как это сделать? Когда я щелкаю правой кнопкой мыши и захожу в Менеджер связанных таблиц для таблицы во внешнем интерфейсе (связан с бэкендом md), кажется, что это только позволяет мне выбрать новый файл mdb.
5 ответов
Я бы согласился с вашей первой догадкой: вы захотите запустить мастер на бэк-энде mdb.
Как только вы уже догадались, что, как вы уже догадались, вы захотите связать интерфейс для работы с данными SQL Server. Один из способов сделать это - настроить источник данных ODBC для новой базы данных SQL Server и выбрать его в диспетчере связанных таблиц.
- Откройте ярлык "Источники данных" (ODBC): в XP Pro это находится на панели управления в разделе "Администрирование". (Если вы этого не видите, у вас, вероятно, нет разрешения на создание источника данных, поэтому вам придется работать с сетевиками, чтобы сделать это.) Это откроет ODBC Administrator.
- На вкладке File DSN нажмите Add.... Вы увидите список доступных драйверов. Выберите SQL Server и нажмите Далее. (Если внешний интерфейс используется только на вашем компьютере, вы можете создать системный DSN.)
- Найдите общее местоположение и назовите свой источник данных.
- Нажмите Далее и Готово. Это настроит первую часть источника данных и откроет мастер источника данных SQL Server.
- Назовите источник данных и выберите сервер, на котором вы разместили увеличенную внутреннюю базу данных.
- Измените остальные параметры по мере необходимости (вам может не потребоваться много изменений, но для объема этих изменений может потребоваться второй вопрос) и нажмите "Готово".
После того, как вы настроили источник данных, тогда Get External Data даст вам возможность выбрать его в качестве источника. (В 2007 году вы можете получить их с ленты внешних данных. Источники данных ODBC доступны в разделе Подробнее.)
Чтобы немного расширить, основываясь на последующих вопросах Мэтта:
Как вы это делаете, это выбор дизайна. Я рекомендую увеличить размер внутренней базы данных mdb, потому что это позволит вам сохранить любые формы и подобные им в Access; Я думаю, что это меньше переход, если ваши данные в SQL Server.
До того, как вы увеличили размер, ваши таблицы были связаны с внутренней базой данных, и менеджер связанных таблиц показал ссылки. После того, как вы настроите источник данных ODBC и свяжете эти таблицы, он покажет эту ссылку. Вы будете просматривать ссылки двумя разными способами, потому что это на самом деле разные типы ссылок (Access и ODBC), даже если ссылки на внешний интерфейс mdb выглядят одинаково.
Лично я обнаружил, что мастер изменения размера очень плохо определяет правильные типы данных. Я сам создавал бы таблицы в SQL-сервере, используя нужные мне типы данных, а затем перемещал данные в существующие таблицы из Access. в противном случае вы застрянете с текстовыми данными, когда сможете использовать varchar или float, когда вам действительно нужно десятичное число.
После того, как данные были перемещены, я бы удалил таблицы Access и связался с таблицами SQL Server.
Ничего не делайте без предварительной резервной копии базы данных.
Как стандартная паранойя, я просто сделал бы резервную копию существующих файлов и запустил Мастер Upsizing на внешнем интерфейсе. Если произойдет что-то нежелательное, просто отмените изменения, перезаписав их резервной копией.
Обновите интерфейс, и он импортирует таблицы до того, как увеличится. Я сделал это неделю назад с успешным результатом.
Однако любые запросы, которые используют -1 вместо Да, не будут выполнены. Любое удаление полной таблицы в таблицах без первичного ключа завершится неудачно, и вы получите поведение, отличное от того, которое вы сделаете, просто используя сквозной SQL-запрос для усечения таблицы. Усечение удалит все строки, версия Access может оставить пустым.
Также вам нужно будет включить dbSeeChanges везде, где у вас есть открытие набора записей в таблице с типом данных столбца автонумерации. SQL меняет их на типы данных Identity, а затем пытается сжечь, прежде чем пытаться открыть таблицу. Удачи.
Сделайте все это в передней части
Вы можете просто экспортировать таблицы в SQL Server.
Затем вы можете удалить связанные таблицы, которые есть в вашем интерфейсе.
Затем свяжите соединение с SQL Server
Проверять:
- когда вы открываете таблицы, вы получаете записи
- все ваши запросы выполняются
- скомпилируйте свой код
Вам также нужно будет подумать о том, как вы выпускаете переднюю часть. Если вы используете файл dsn, вам необходимо предоставить его каждому пользователю.
Вам нужно будет определить, как конечный пользователь получает доступ к SQL Server. Вы используете единый логин с сохраненными в соединении именем пользователя и паролем?
Вы также можете разделить свою внутреннюю базу данных на несколько баз данных Access и связать их во внешнем интерфейсе.