Импорт файлов DBF на Sql Server - PullRequest
2 голосов
/ 19 мая 2009

Мне нужна небольшая помощь, чтобы понять это, потому что я новичок в хранимых процедурах. Я пытаюсь импортировать таблицу .DBF в Sql Server 2008, используя эту процедуру хранилища.

CREATE PROCEDURE spImportDB
-- Add the parameters for the stored procedure here

AS
BEGIN

-- Insert statements for procedure here

 SELECT * into Products
 FROM OPENROWSET('vfpoledb','C:\Users\Admin\Doc\Data\DBF',
 'SELECT * FROM MyTable')

END
GO

Я получаю эту ошибку. Поставщик OLE DB "vfpoledb" не был зарегистрирован. Это не так, я установил его и он отлично работает в моем другом приложении.

Я также пытался запустить его таким образом с этим провайдером, но я получаю это сообщение об ошибке Не удалось инициализировать объект источника данных поставщика OLE DB "Microsoft.Jet.OLEDB.4.0" для связанного сервера "(null)".

CREATE PROCEDURE spImportDB
-- Add the parameters for the stored procedure here

AS
BEGIN

-- Insert statements for procedure here

 SELECT * into Products
 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','C:\Users\Admin\Doc\Data\DBF',
 'SELECT * FROM MyTable')

END
GO

Какой самый простой способ создать эту хранимую процедуру? Я хочу, чтобы это была хранимая процедура, а не мастер или программа, поэтому, пожалуйста, не давайте мне никаких программ.

Ответы [ 3 ]

3 голосов
/ 20 мая 2009

Вы можете попробовать

SELECT * into SomeTable
FROM OPENROWSET('MSDASQL', 'Driver=Microsoft Visual FoxPro Driver;
SourceDB=\\SomeServer\SomePath\;
SourceType=DBF',
'SELECT * FROM SomeDBF')

из этот предыдущий вопрос

2 голосов
/ 20 мая 2009

Я не уверен насчет «дружественного имени» для VFPOLEDB, но второй SP должен работать (т. Е. Использовать «Microsoft.Jet.OLEDB.4.0»), если вы указываете на конкретный файл DBF с помощью название. Похоже, вы указываете на каталог, а не на файл.

Дополнительную информацию можно найти в: http://msdn.microsoft.com/en-us/library/ms190312.aspx

0 голосов
/ 31 января 2017

Для всех, кто ищет ответ на этот вопрос, причиной этой ошибки является установка драйвера Foxpro для «Just Me» вместо «Everyone».

Запустите установщик для «Все», чтобы избежать этой ошибки.

...