Есть задача выгрузить данные из DBF файла в базу MS SQl. Поискав по форумам и сайтам я нашел более подходящее решение. Импорт можно сделать через команду sql сервера OPENROWSET.
Вначале SQL сервер надо настроить, чтобы он мог импортировать данные:
1 2 3 4 | sp_configure 'show advanced options','1' reconfigure sp_configure 'Ad Hoc Distributed Queries', '1' reconfigure |
Вот и сам запрос для получения данных:
1 2 | SELECT * FROM OPENROWSET ('MICROSOFT.ACE.OLEDB.12.0','dBase 5.0;HDR=YES;IMEX=2;DATABASE=D:\Test', 'SELECT * FROM RRL_R.dbf') |
Для того, чтобы сохранить полученные данные в БД выполняем запрос:
1 2 3 | INSERT INTO [VCIMPORT].[dbo].[RRL_R] SELECT * FROM OPENROWSET ('MICROSOFT.ACE.OLEDB.12.0','dBase 5.0;HDR=YES;IMEX=2;DATABASE=D:\Test', 'SELECT * FROM RRL_R.dbf'); |
по соображениям безопасности можно отключить параметры:
1 2 3 4 | sp_configure 'show advanced options','0' reconfigure; sp_configure 'Ad Hoc Distributed Queries', '0' reconfigure |
А как импортировать файл xls в ms sql, причем сам файл для импорта должен выбрать пользователь.