Импорт таблицы в Access с сервера SQL - ошибки

Toster_XP
Дата: 26.02.2008 19:12:47
Имеется Access 2000 и большая таблица с данными на сервере Navision - 9,5 млн. записей (!)
Хочется - заимпортировать таблицу в Access.

Делаю все по-простому, так как опыта пока очень мало: просто с помощью меню "Import table" пытаюсь импортировать ее через SQL Server Driver. Вылетает обычно ошибка "Invalid Argument". Ума не приложу почему это происходит, так как никакого кода от руки не пишу, просто использую меню. Странность еще состоит в том, что рядом в большой таблицей на серваке лежит маленькая (56 записей) с почти таким же именем (в имени есть "." [точка] - думал проблема с этим) и ее импорт проходит успешно. Но если пробовать импортировать маленькую после вылетания ошибки при импорте большой - то тут тоже выдает Invalid Argument %)

Пробовал сделать по-другому залинковал исходную таблицу и при помощи Make Table Query решил ее "клонировать". Тут вылетает ошибка "[Microsoft][ODBC SQL Server Driver]Timeout Expired (#0)". Еще опятным путем установлено, что если ограничить запрос при помощи критерий до результата в ~200 тыс. записей, то все проходит нормально, если больше 200 тыс. - ошибка.

Заранее прошу не бить ногами за, возможно, путанное объяснение сути проблемы - я совсем начинающий. Готов ответить на любые уточняющие вопросы. Буду благодарен за любые советы.
бабай
Дата: 27.02.2008 23:21:39
в общем плане такая ошибка говорит о том, что завершилось время на выполнение запроса (по созданию таблицы),
а запрос так и не успел завершиться за отведенное ему по умолчанию время.
Если вы совсем не владеете vba и работой с объектами достума к данным, то попробуйте для начала просто увеличить время ожидания ODBC в своем запросе на создание таблицы.

я так понял, что вы строите этот запрос над линкованной odbc таблицей.
Откройте таблицу, полистайте ее вперед-назад. Убедитесь, что визупально искажений данных нет.
Закройте таблицу. Снова откройте и дайте ей команду перейти на последнюю запись ( в кнопках перехода по записям - правая). Оцените хотя бы приблизительно время, в течение которого будет происходить переход на последнюю запись. В свойствах своего запроса задайте время ожидания ODBC не менее произведенной оценки.

Данные из линкованной через odbc таблицы будут поступать относительно не быстро. Так она устроена.
Возможно быстрее операция пройдет, если запрос на создание таблицы строить не над линкованной odbc-таблицей, а над т.н. "запросом к серверу" (в свойствах которого тоже можно задать время ожидания odbc).

В вашем случае я, исходя из личных, плохо формализуемых с разбегу предпочтений, строил бы запрос не на создание таблицы,
а запрос на добавление данных к заранее созданной таблице подходящей структуры.
Toster_XP
Дата: 28.02.2008 16:09:54
бабай
попробуйте для начала просто увеличить время ожидания ODBC в своем запросе на создание таблицы

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

В результате я так и сделал - серию из нескольких запросов, добавляющих "по чуть-чуть" в общую таблицу (одним запросом добавить тоже не получилось).

Большое спасибо за совет.
Toster_XP
Дата: 28.02.2008 16:12:54
Toster_XP
бабай
попробуйте для начала просто увеличить время ожидания ODBC в своем запросе на создание таблицы

А где это можно сделать?

Нашел, спасибо.