Импорт данных Access в SQL Server с использованием ColdFusion
Это должно быть просто. Я пытаюсь импортировать данные из Access в SQL Server. У меня нет прямого доступа к базе данных SQL Server - она на GoDaddy, и они разрешают только веб-доступ. Поэтому я не могу использовать инструменты Management Studio или другие сторонние программы Access, которые требуют удаленного доступа к базе данных.
Я написал запрос к базе данных Access, и я пытаюсь перебрать и вставить каждую запись в соответствующую таблицу SQL Server. Но это продолжает выдавать ошибку. Я совершенно уверен, что это из-за HTML, и Бог знает, какие еще странные символы есть в одном из текстовых полей Access. Я пытался использовать CFQUERYPARAM, но это тоже не помогает.
Любые идеи будут полезны. Благодарю.
4 ответа
Попробуйте использовать средство резервного копирования / восстановления GoDaddy SQL, чтобы получить локальную копию базы данных. На этом этапе используйте инструмент SQL Server DTS для импорта данных. Это простой в использовании графический интерфейс перетаскивания.
Какую ошибку (ы) получить (ы) выброшены? Какие странные символы вы используете? Вы имеете в виду разметку HTML или расширенные (например, UTF-8) символы?
Если возможно, включите Надежные отчеты об ошибках.
Если проблема связана с тайм-аутом страницы, вы можете либо увеличить тайм-аут, используя Admin, используя тег cfsetting, либо переписать свой скрипт, чтобы запустить определенное количество строк, а затем переслать его себе в следующую начальную точку.
Вы должны иметь возможность выполнять сохраненные пакеты DTS в MS SQL Server из командной строки сервера приложений. Так как это так, вы можете использовать <cfexecute>
оформить запрос к DTSRUNNUI.EXE. ( См. Пример) Это, конечно, предполагает, что вы находитесь на сервере, где доступна команда.
Никогда не рекомендуется перебирать записи, когда можно использовать SQL Update.
Из вашего вопроса не ясно, какой слой интерфейса базы данных вы используете, но с правильными интерфейсами возможно вставить данные из источника вне базы данных, если используемый интерфейс поддерживает оба типа баз данных. Это можно сделать в предложении FROM вашего оператора SQL, указав не только имя таблицы, но и строку подключения для базы данных. Предполагая, что на вашем веб-хосте есть драйверы ODBC для данных Jet (на самом деле вы не используете Access, который является частью разработки приложения - вы используете только ядро базы данных Jet), строки подключения должно быть достаточно.
РЕДАКТИРОВАТЬ: Если вы используете ядро базы данных Jet для этого, вы сможете указать исходную таблицу примерно так (где tblSQLServer - это таблица в вашем Jet MDB, которая через ODBC связана с вашим SQL Server):
INSERT INTO tblSQLServer (ID, OtherField )
SELECT ID, OtherField
FROM [c:\MyDBs\Access.mdb].tblSQLServer
Ключевым моментом является то, что вы используете здесь двигатель Jet db, чтобы выполнить всю тяжелую работу за вас.