Я работаю над exe-файлом для экспорта SQL в Access, мы не хотим использовать DTS, поскольку у нас есть несколько клиентов, каждый из которых экспортирует разные представления, а накладные расходы на настройку и обслуживание пакетов DTS слишком велики.
* Редактировать: этот процесс автоматизируется для многих клиентов каждую ночь, поэтому весь процесс должен запускаться и контролироваться с помощью курсора в хранимой процедуре. Это связано с тем, что данные должны быть отфильтрованы для каждого проекта для экспорта.
Я испробовал много способов получить данные из SQL в Access, и наиболее многообещающим было использование взаимодействия с Access и запуск
doCmd.TransferDatabase(Access.AcDataTransferType.acImport...
Я столкнулся с проблемой, когда я импортирую из представлений, и запуск импорта вручную кажется, что представление не начинает возвращать данные достаточно быстро, поэтому при доступе появляется диалоговое окно MessageBox, чтобы сказать, что время ожидания истекло. Я думаю, что это происходит и при взаимодействии, но поскольку он скрыт, метод никогда не возвращается!
Есть ли способ предотвратить появление этого сообщения или увеличить время ожидания команды импорта?
Мой текущий план атаки состоит в том, чтобы свести представление к таблице, затем импортировать из этой таблицы, а затем удалить сведенную таблицу.
Рад любым предложениям, как решить эту проблему.
Редактировать:
Дополнительная информация о том, чем я занимаюсь:
У нас есть несколько клиентов, каждый из которых имеет стандартную модель данных. Одним из «модулей» является экспортер доступа (sproc). Он считывает представления для экспорта из таблицы параметров, а затем экспортирует их. Представления фильтруются по проекту, и для каждого проекта создается файл доступа (каждое представление имеет поле проекта)
Мы используем SQL 2005 и не собираемся быстро переходить на SQL 2005, вероятно, через несколько месяцев мы перейдем на 2008 год.
Затем у нас есть задание на выполнение модуля, которое выполняет настроенный модуль в каждой базе данных. Есть много заданий импорта/экспорта/других, которые выполняются в этом исполнении модуля, и экспортер доступа должен быть в состоянии вписаться в эту структуру. Поэтому мне нужен общий экспортер SQL -> Access, который можно настроить через нашу структуру параметров.
В настоящее время sproc вызывает exe, который я написал, и мой exe открывает доступ через взаимодействие, я знаю, что это плохо для сервера, НО выполнение модуля написано, поэтому одновременно выполняется только один модуль, поэтому процедура никогда не будет работать больше чем один экземпляр за раз.