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