Импорт данных Access в SQL Server с помощью ColdFusion

Это должно быть просто. Я пытаюсь импортировать данные из Access в SQL Server. У меня нет прямого доступа к базе данных SQL Server - это на GoDaddy, и они разрешают только веб-доступ. Поэтому я не могу использовать инструменты Management Studio или другие сторонние программы увеличения размера Access, которым требуется удаленный доступ к базе данных.

Я написал запрос к базе данных Access, и я пытаюсь перебрать и вставить каждую запись в соответствующую таблицу SQL Server. Но он продолжает ошибаться. Я почти уверен, что это из-за HTML, и Бог знает, какие еще странные символы находятся в одном из текстовых полей Access. Я пробовал использовать CFQUERYPARAM, но это тоже не помогло.

Любые идеи были бы полезны. Спасибо.


person Community    schedule 15.09.2008    source источник
comment
Было бы полезно указать, в чем заключается ошибка. Если я понимаю, что вы пытаетесь сделать, вы подключаетесь к базе данных доступа, чтобы получить всю информацию, а затем перебираете этот запрос для вставки в SQL Server?   -  person Dan Cramer    schedule 16.09.2008
comment
Помимо сообщения об ошибке, было бы полезно, если бы вы могли перечислить определения таблиц как в Access, так и в SQL Server.   -  person Joe Mahoney    schedule 19.09.2008


Ответы (4)


Попробуйте использовать GoDaddy Инструмент резервного копирования / восстановления SQL, чтобы получить локальную копию базы данных. На этом этапе используйте инструмент SQL Server DTS. для импорта данных. Это простой в использовании графический интерфейс с перетаскиванием.

person Chase Seibert    schedule 15.09.2008
comment
Я пробовал это, но GoDaddy не позволяет восстанавливать ничего, кроме собственных резервных копий. Я думаю, что они специализируются на том, чтобы не делать того, что делает любой другой веб-хостинг в известной вселенной. - person ; 17.09.2008

Какие ошибки возникают? Какие странные символы вы используете? Вы имеете в виду разметку HTML или расширенные (например, UTF-8) символы?

Если возможно, включите надежные отчеты об ошибках.

Если проблема заключается в тайм-ауте страницы, вы можете либо увеличить тайм-аут с помощью Admin, используя тег cfsetting, либо переписать свой скрипт, чтобы запустить определенное количество строк, а затем перенаправить на себя в следующей начальной точке.

person Ben Doom    schedule 16.09.2008

Вы должны иметь возможность выполнять сохраненные пакеты DTS в MS SQL Server из командной строки сервера приложений. В этом случае вы можете использовать <cfexecute> для отправки запроса к DTSRUNNUI.EXE. (См. пример). Конечно, предполагается, что вы находитесь на сервере, где команда доступна.

person Andy Waschick    schedule 17.09.2008

Никогда не рекомендуется перебирать записи, когда можно использовать обновление SQL.

Из вашего вопроса неясно, какой уровень интерфейса базы данных вы используете, но с правильными интерфейсами можно вставлять данные из источника вне базы данных, если используемый интерфейс поддерживает оба типа баз данных. Это можно сделать в предложении 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, который сделает всю тяжелую работу за вас.

person David-W-Fenton    schedule 15.09.2008