Сбой доступа ms при загрузке базы данных, содержащей связанную таблицу сервера sql
У меня есть MDB, который раньше содержал кучу связанных таблиц. Эти ссылки указывают на таблицы в другом доступе mdb.
Как часть контролируемой миграции, я изменяю эти таблицы ссылок так, чтобы они указывали на экземпляр сервера SQL, перебирая все связанные таблицы и обновляя строку подключения до ODBC, а затем вызывая RefreshLink для tabledef.
Тем не менее, при открытии моей новой базы данных с ODBC-ссылками Access вылетает. Что еще интереснее, если я удаляю одну конкретную связанную таблицу (через ADO), я могу открыть базу данных. Еще более интересно то, что если я добавлю эту связанную таблицу обратно через графический интерфейс Access, она не будет аварийно завершена, поэтому я знаю, что это не проблема самой таблицы в SQL Server.
Итак, мне нужно выяснить, что именно в этой конкретной связанной таблице вызывает сбой Access. Могу ли я получить любую информацию о сбое, чтобы помочь? Где я могу даже начать расследование этого?
РЕДАКТИРОВАТЬ: я пробовал несколько способов обновления таблицы ссылок, либо с помощью Refresh Link, или удаления и воссоздания таблиц с DSN или без DSN, и т. Д. Каждый раз, когда это одна и та же таблица, которая вызывает сбой mdb при открытии.
РЕДАКТИРОВАТЬ 2: К сожалению, кажется, что сбой на самом деле в какой-то степени связан с управлением исходным кодом - если я отключу моего поставщика SCCAPI, то сбоя не будет. Я до сих пор не знаю, как это расследовать.
2 ответа
Ни одна стратегия связывания таблиц не изменила результаты, мы все равно получили бы тот же сбой в той же базе данных из-за той же таблицы.
Однако отключение контроля исходного кода устранило проблему, и никто не предложил ни возможную причину этого, ни метод исследования, поэтому я закрываю вопрос, принимая "Отключить SCC" в качестве ответа.
Я часто использую связанные таблицы MySQL в своих базах данных Access, хотя при любом написании я использую соединение ADO, а не ODBC.
Однако недавно в новом проекте я связался с новой базой данных - веб-сервером MySQL - связывание было в порядке - тестовое соединение было в порядке - но одна конкретная таблица была связана нормально, но попробуйте открыть ее - MS Access был мгновенно уничтожен - чего я никогда не видел в любой из моих баз данных с использованием связи ODBC. Прелесть связывания ODBC в том, что в нем используется DAO, а не ADO, и вы можете рассматривать эту таблицу как локальную таблицу - чтобы даже не быть ADO в этой конкретной таблице с ошибками - но не выдает код ошибки, чтобы помочь.
Проблема решена - в этой таблице было 2 поля типа JSON (на самом деле это только длинный текст), но Access был убит - даже с последней версией драйвера 8.0
К счастью, я общаюсь с веб-разработчиком, и это была сделанная на заказ база данных, но поля JSON не использовались, поэтому он преобразовал их в длинный текст - вуаля - MS Access снова был совершенно счастлив.
Хотя раздражающая вещь, которую я не решил, это то, что связанные таблицы показывают содержимое как #DELETED# - и для заполнения необходимо обновить F5 - хотя с драйвером 8.0 это не работает.
Однако ADO довольна, и ссылка "скопировать и вставить" в качестве локальной таблицы работает отлично.
Удалите ссылки и создайте совершенно новые. Ссылки ODBC не могут быть надежно обновлены, даже если они начинаются как ссылки ODBC.