Как импортировать файл DBF в SQL Server

Как вы можете импортировать файл foxpro DBF в SQL Server?


person Pop Catalin    schedule 09.09.2008    source источник


Ответы (5)


Используйте связанный сервер или используйте openrowset, например

SELECT * into SomeTable
FROM OPENROWSET('MSDASQL', 'Driver=Microsoft Visual FoxPro Driver;
SourceDB=\\SomeServer\SomePath\;
SourceType=DBF',
'SELECT * FROM SomeDBF')
person SQLMenace    schedule 09.09.2008
comment
я использовал его, но возникает эта ошибка ---- Поставщик OLE DB MSDASQL для связанного сервера (нулевой) вернул сообщение [Microsoft] [Диспетчер драйверов ODBC] Драйвер не поддерживает эту функцию. Не удается инициализировать объект источника данных поставщика OLE DB MSDASQL для связанного сервера (нулевой). - person sqlchild; 22.03.2011
comment
@sqlchild: мне пришлось установить это, чтобы у меня все заработало. msdn.microsoft.com/en-us/vfoxpro/bb190233 - person JoshBaltzell; 10.06.2011
comment
@JoshBaltzel: Я получаю следующую ошибку, когда пытаюсь установить этот драйвер ODBC: Ошибка 1918: Ошибка установки драйвера ODBC: Microsoft Visual FoxPro Diver, ошибка ODBC 13. Процедуры установки для драйвера ODBC Microsoft Visual FoxPro Diver не могут быть загружены из-за к коду системной ошибки 1114: сбой процедуры инициализации библиотеки динамической компоновки (DLL). (C:\Windows\system32\vfpodbc.dll). Убедитесь, что файл Microsoft Visual FoxPro Driver существует и что вы можете получить к нему доступ. - person Zach; 13.01.2012
comment
Что происходит с удаленными записями из файла dbf?! Как заставить команду select работать с двумя таблицами (файлами dbf) из разных мест на одном ПК? Это мои проблемы с этими файлами dbf. С уважением, Вали - person Vali Maties; 23.12.2015

Я смог использовать ответ от jnovation, но, поскольку с моими полями что-то не так, я просто выбрал определенные поля вместо всех, например:

select * into CERTDATA
from  openrowset('VFPOLEDB','C:\SomePath\CERTDATA.DBF';'';
    '','SELECT ACTUAL, CERTID,  FROM CERTDATA')

Очень интересно наконец получить работающий ответ, спасибо всем здесь!

person mark d    schedule 15.08.2012
comment
Это сработало для меня. Однако я получаю сообщение об ошибке «Отказано в доступе», пока не перейду к «Объекты сервера» -> «Связанные серверы» -> «Провайдеры» -> «VFPOLEDB», не нажму «Свойства» и не отмечу «Разрешить inprocesss». - person Mark Wagoner; 11.12.2015

http://elphsoft.com/dbfcommander.html может экспортировать данные из DBF в SQL Server и наоборот.

person Stan    schedule 23.06.2011

В итоге нам помогло использование драйвера FoxPro OLEDB и используйте следующий синтаксис. В нашем случае мы используем SQL 2008.

select * from 
    openrowset('VFPOLEDB','\\VM-GIS\E\Projects\mymap.dbf';'';
    '','SELECT * FROM mymap')

Замените \\VM-GIS... на расположение вашего файла DBF, либо UNC, либо путь к диску. Кроме того, замените mymap после FROM на имя файла DBF без расширения .dbf.

person jnovation    schedule 14.06.2011
comment
Да, вы определенно хотите использовать OLEDB вместо ODBC. - person Alan B; 10.01.2013

Эти инструменты позволяют импортировать в SQL Server и из него.

person GateKiller    schedule 09.09.2008