2010-01-15 3 views
1

У меня есть mdb, который содержал связку связанных таблиц. Эти ссылки указывают на таблицы в другом Access mdb.ms сбой при доступе при загрузке mdb, содержащей связанную таблицу сервера sql

Как часть контролируемой миграции, я меняю эту таблицу ссылок, чтобы вместо этого указывать на экземпляр SQL-сервера, итерации по всем связанным таблицам и обновления строки подключения к ODBC, а затем вызов RefreshLink в tabledef.

Однако при открытии моей новой базы данных с помощью ссылок ODBC доступ падает. Более интересно, если я удалю одну конкретную связанную таблицу (через ADO), я могу открыть базу данных. Еще интереснее, если я добавлю эту связанную таблицу обратно через графический интерфейс Access, она не сработает, поэтому я знаю, что это не проблема с самой таблицей в SQL Server.

Итак, мне нужно выяснить, что это за конкретная связанная таблица, которая вызывает доступ к сбою. Могу ли я получить информацию о крахе, чтобы помочь? Где я могу начать расследование?

EDIT: Я попытался несколько способов обновить таблицу ссылок, либо обновить ссылку, либо отбросить и воссоздать таблицы с помощью DSN или без DSN и т. Д. Каждый раз, когда это та же таблица, которая вызывает mdb, крушение при открытии.

РЕДАКТИРОВАТЬ 2: К сожалению, кажется, что авария на самом деле каким-то образом сведена к исходному контролю - если я отключу свой провайдер SCCAPI, тогда нет сбоя. Я до сих пор не знаю, как это расследовать.

ответ

0

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

Однако, отключение управления исходным кодом устранило проблему, и никто не предложил возможную причину этого или метод расследования, поэтому я закрываю вопрос, приняв «Отключить SCC» в качестве ответа.

0

Удалить ссылки и создать совершенно новые. Ссылки ODBC не могут быть надежно обновлены, даже когда они начинаются как ссылки ODBC.

+1

Согласен. Напишите код, который при запуске удаляет и воссоздает все ваши ссылки, прежде чем делать что-либо еще. Это должно быть очень быстро. Вы можете использовать локальную таблицу со списком таблиц и необходимой им ссылкой или просто с одной строкой с сервером для подключения (при условии, что все связанные таблицы должны быть воссозданы и будут подключаться к одному и тому же серверу, и наличие связанной таблицы - это то, что вызывает его удаление и воссоздание). – ErikE

+0

Мне просто пришло в голову, что независимо от того, могут ли быть удалены ссылки ODBC, зависит от поставщика ODBC. Например, ссылки на программу ODBC для учетной записи MYOB могут быть обновлены очень просто, без необходимости их удаления и воссоздания, но, по моему опыту, ссылки на SQL Server и MySQL не могут. –

+0

@Emtucifor: На самом деле вам не нужно ничего делать, кроме хранения имен таблиц в пользовательской коллекции или массиве перед удалением и повторным созданием их - нет необходимости в постоянном хранении. –